บทความ

กำลังแสดงโพสต์จาก กุมภาพันธ์, 2013

7. Cairo create PNG image

7. Cairo create PNG image #include <cairo.h> int main(void) { cairo_surface_t *surface; cairo_t *cr; surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 390, 60); cr = cairo_create(surface); cairo_set_source_rgb(cr, 0, 0, 0); cairo_select_font_face(cr, "Sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL); cairo_set_font_size(cr, 40.0); cairo_move_to(cr, 10.0, 50.0); cairo_show_text(cr, "Disziplin ist Macht."); cairo_surface_write_to_png(surface, "image.png"); cairo_destroy(cr); cairo_surface_destroy(surface); return 0; }

6. การสร้างภาพ โดย Cairo graphics

Cairo graphics เป็น libery ที่อยู่ใน GTK3.0 อิอิ ผมศึกษาจาก   http://zetcode.com/gfx/cairo/

5. timer

5. timer #include <stdio.h> #include <string.h> #include <gtk/gtk.h> /* Determines if to continue the timer or not */ static gboolean continue_timer = FALSE; /* Determines if the timer has started */ static gboolean start_timer = FALSE; /* Display seconds expired */ static int sec_expired = 0; static gboolean _label_update(gpointer data) {     GtkLabel *label = (GtkLabel*)data;     char buf[256];     memset(&buf, 0x0, 256);     snprintf(buf, 255, "Time elapsed: %d secs", ++sec_expired);     gtk_label_set_label(label, buf);     return continue_timer; } int main(int argc, char *argv[]) {     GtkWidget *window;     GtkWidget *frame;     GtkWidget *quit_button;     GtkWidget *label;     gtk_init(NULL, NULL);     window = gtk_window_new(GTK_WINDOW_TOPLEVEL);     gtk_window_set_title(GTK_WINDOW(window),...

4. Menu bar

4. Menu bar #include <gtk/gtk.h> #include <gdk/gdkkeysyms.h> int main( int argc, char *argv[]) {   GtkWidget *window;   GtkWidget *vbox;   GtkWidget *menubar;   GtkWidget *filemenu;   GtkWidget *file;   GtkWidget *open;   GtkWidget *quit;   GtkWidget *sep;   GtkAccelGroup *accel_group = NULL;   gtk_init(&argc, &argv);   window = gtk_window_new(GTK_WINDOW_TOPLEVEL);   gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);   gtk_window_set_default_size(GTK_WINDOW(window), 250, 200);   gtk_window_set_title(GTK_WINDOW(window), "menu");   vbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);   gtk_container_add(GTK_CONTAINER(window), vbox);   menubar = gtk_menu_bar_new();   filemenu = gtk_menu_new();   accel_group = gtk_accel_group_new();   gtk_window_add_accel_group(GTK_WINDOW(window), accel_group);   file = gtk_menu_item...

3. buttom แบบ vertical box

#include <gtk/gtk.h> int main( int argc, char *argv[]) { GtkWidget *window; GtkWidget *vbox; GtkWidget *settings; GtkWidget *accounts; GtkWidget *loans; GtkWidget *cash; GtkWidget *debts; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); gtk_window_set_default_size(GTK_WINDOW(window), 230, 250); gtk_window_set_title(GTK_WINDOW(window), "GtkVBox"); gtk_container_set_border_width(GTK_CONTAINER(window), 5); vbox = gtk_vbox_new(TRUE, 1); gtk_container_add(GTK_CONTAINER(window), vbox); settings = gtk_button_new_with_label("Settings"); accounts = gtk_button_new_with_label("Accounts"); loans = gtk_button_new_with_label("Loans"); cash = gtk_button_new_with_label("Cash"); debts = gtk_button_new_with_label("Debts"); gtk_box_pack_start(GTK_BOX(vbox), settings, TRUE, TRUE, 0); gtk_box_pac...

2. buttom แบบ fixed

2. buttom แบบ fixed #include <gtk/gtk.h> gint count = 0; char buf[5]; void increase(GtkWidget *widget, gpointer label) { count++; sprintf(buf, "%d", count); gtk_label_set_text(GTK_LABEL(label), buf); } void decrease(GtkWidget *widget, gpointer label) { count--; sprintf(buf, "%d", count); gtk_label_set_text(GTK_LABEL(label), buf); } int main(int argc, char** argv) { GtkWidget *label; GtkWidget *window; GtkWidget *frame; GtkWidget *plus; GtkWidget *minus; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); gtk_window_set_default_size(GTK_WINDOW(window), 250, 180); gtk_window_set_title(GTK_WINDOW(window), "+-"); frame = gtk_fixed_new(); gtk_container_add(GTK_CONTAINER(window), frame); plus = gtk_button_new_with_label("+"); gtk_widget_set_size_request(plus, 80, 35); gtk_fixed_put(GTK_FIXED(frame), ...

1. ตัวอย่างGTK+ การรัน หน้า UI

1. เป็นการรัน หน้า UI  ตัวอย่าง #include <gtk/gtk.h> int main( int argc, char *argv[]) { GtkWidget *window; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "Center"); gtk_window_set_default_size(GTK_WINDOW(window), 230, 150); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); gtk_widget_show(window); g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); gtk_main(); return 0; }

0. GTK3.0+ จุดเริ่มต้น

วันที่ 19 ก.พ. 56 ผมได้เริ่มต้นเรียนรู้ GTK3+ ซึ่งมันเป็น UI ซึ่งใช้งานร่วมกับ C/C++ หรือถ้าใช้ร่วมกับ ภาษาอื่น ก็ขอโทษทีครับ ผมได้ศึกษา จาก  http://zetcode.com/tutorials/gtktutorial/