GotoKnow
  • เข้าระบบ
  • สมัครสมาชิก
  • แผงจัดการ
  • ออกจากระบบ
GotoKnow

มือใหม่หัดใช้ GTK + (1)

ตอนนี้เริ่มทำงานแล้ว รู้สึกว่าต้องปรับตัวหลายอย่างเหมือนกัน สำหรับงานที่ต้องทำก็ต้องเขียนโปรแกรมบน Linux แต่ต้องเป็นกราฟฟิกโหมด เลยเลือกใช้ GTK+ ความยากมันอยู่ที่เป็นภาษา C ซึ่งไม่ถนัด เคยแต่อ่านโค้ด อาศัยอความรู้จาก C++ ช่วยเลยพอรอดตัว

สำหรับคนที่ไม่เคยเขียนโปรแกรมบน Linux อันนี้ไม่นับจาวานะครับ ก็ขอสรุปเกี่ยวกับกราฟฟิกโหมดบน Linux คร่าว ๆ ตามที่เข้าใจ รายละเอียดผมไม่กล่าวถึงนะครับ ดังนี้

Linux ที่จริงเป็นเพียง kernel ที่เราสามารถจะโหลดอะไร ไปประมวลผลได้ สำหรับกราฟฟิกโหมดนั้นปัจจุบันใช้ XWindow หรือ x.org นั่นเอง เป็นตัวจัดการ ซึ่ง x นั้น ใช้งานยากอยู่ จึงมีผู้คิดสร้าง ตัวจัดการหน้าต่าง หรือ window manager ขึ้น ซึ่งก็มี library พ่วงท้ายมาด้วย ปัจจุบันก็เช่น GTK+ ที่ใช้, QT, wxWidget เป็นต้น แต่โปรแกรมเหล่านี้ก็จัดการหน้าต่างอย่างเ้ดียว จึงมีผู้คิดสร้างเป็นระบบที่มีเครื่องมือช่วยมากขึ้น เช่น taskbar ซึ่งระบบนี้ครอบบน x อีกที เรียกว่า desktop environment เช่น GNOME, KDE เป็นต้น

+---------------------------------------------------+
| +-----------------------------+..................... |
| | +---------+ ...................|...................... |
| | | kernel ..| xwindow ......| desktop env... |
| | +---------+ ...................|..................... |
| +---------------------------+ .......................|
+---------------------------------------------------+

GTK ประกอบด้วยส่วนสำคัญคือ
-- Glib เป็น library พื้นฐานเกี่ยวกับobject ต่าง ๆ
-- Pango เป็น library จัดการ layout และ การ render text
-- ATK เป็นlibrary ช่วยจัดการเกี่ยวกับ accessibility สำหรับคนพิการ

โปรแกรมแรก :

/******* helloworld.c **********/

#include  
int main( int   argc,char *argv[] )
{
/* ประกาศ widget */
GtkWidget *window;
GtkWidget *label;
/*ต้องมีเพื่อส่งอาร์กิวเมนต์ไปให้ GTK รู้*/
gtk_init (&argc, &argv);
/* สร้าง window */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
/* สร้างลาเบล */
label = gtk_label_new ("Hello World");
/* ใส่ลาเบล บน window */
gtk_container_add (GTK_CONTAINER (window), label);
/* lสั่งให้แสดง widget */
gtk_widget_show (button);
gtk_widget_show (window);
/* สั่งให้ gtk ทำงาน*/
gtk_main ();
return 0;
}
  compile :   

gcc -Wall -o helloworld `pkg-config gtk+-2.0 --cflags --libs` helloworld.c

 

 run:  
./helloworld  
น่าจะมี window ขึ้นมานะ เหอ ๆ  
แค่นี้ก่อนดีกว่า  
 --------------------------------------------------------------  
ที่มา :  
http://www.gtk.org/   

บันทึกนี้เขียนที่ GotoKnow โดย 

คำสำคัญ (keywords): uncategorized
หมายเลขบันทึก: 23881
เขียน:
แก้ไข:
อ่าน:
สัญญาอนุญาต: สงวนสิทธิ์ทุกประการ

ความเห็น (0)