ตอนนี้เริ่มทำงานแล้ว รู้สึกว่าต้องปรับตัวหลายอย่างเหมือนกัน สำหรับงานที่ต้องทำก็ต้องเขียนโปรแกรมบน 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/
ไม่มีความเห็น