อันเก่า ที่เคยเขียนไว้ที่ gotoknow.org
--------------------------------------------------------
ตอนนี้เริ่มทำงานแล้ว รู้สึกว่าต้องปรับตัวหลายอย่างเหมือนกัน สำหรับงานที่ต้องทำก็ต้องเขียนโปรแกรมบน 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 <gtk/gtk.h>
-
-
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 ขึ้นมานะ เหอ ๆ
แค่นี้ก่อนดีกว่า
--------------------------------------------------------------
ที่มา :
Comments
หาจุดขาย
สวัสดีครับ
จะถามพี่หลายครั้งแล้วแต่หาเมล์ไม่เจอเลยไม่รู้ว่าจะติดต่อยังไง
ขอถามในคอมเม้นท์ละกันนะครับ
ผมเรียนวิศวคอมปี 1 ครับ
คือผมอยากจะเก่งอะไรซักด้าน ที่เป็นประโยชน์เวลาจบไปทำงาน แบบว่าเป็นจุดขายอะครับ
เพราะเพื่อนผมบางคนเก่งPHP บางคนเก่งC บางคนgraphic design
แต่ผมยังไม่มีอะไรเลย
ขอบคุณครับ
ขอตอบละกันครับ
ตอบเป็นบล็อกละกันนะครับ
GTK+ Editor
อยากเขียน GTK+ บนวินโดวส์ ครับ
อยากทราบว่ามี Editor บ้างหรือเปล่า สำหรัยเขียน GTK+
ลองติดตั้งคู่กับ Editor อื่นแล้ว ก็ยังไม่ได้..
ถ้ามีบอกวิธีติดตั้งด้วย ก็จะดีมาก
ขอบคุณครับ...
หมายเหตุ : มือใหม่หัดเขียนครับ
ถ้าเป็นแบบ IDE ลากวาง ๆ
ถ้าเป็นแบบ IDE ลากวาง ๆ แล้วล่ะก็ ปกติจะใช้ Glade ครับ ซึ่งมีบน Windows ด้วย http://sourceforge.net/projects/gladewin32/ หรือไม่ก็อาจจะลองใช้ QT4 แทน มี IDE แบบลากวาง ๆ ครับ http://qt.nokia.com/downloads แต่ถ้าจะให้ง่าย การพัฒนาบน Linux จะสะดวกสบายมากกว่าครับ ยังไงลองเมล์มาถามได้ครับ