แม้กระทั่งการเขียนโปรแกรมสำหรับ Arduino ก็นิยมใช้ C++ เช่นกัน แต่สำหรับบนลีนุกซ์แล้วภาษาที่ผู้คิดค้นเขาเลือกใช้ ภาษา C จึงเป็นเรื่องที่น่าสนใจเป็นอย่างยิ่งในการเรียนรู้ ดังนั้นผู้เขียนจึงได้พยายามค้นหาข้อมูลเพื่อเรียนรู้ว่าจะเขียนโปรแกรมบน Linux ได้อย่างไร แต่เดิมก็เรียบๆ เคียงๆ กับ C++ และ Python ก็มองผ่านภาษา C ไปอีก
จนกระทั่งล่าสุดช่วงที่หยุดอยู่กับบ้านเพราะภัยไวรัสโควิด-19 ก็มีเวลาว่างมากเสียจนไม่รู้จะทำอะไรก่อนหลังดี เพราะไม่มีสมาธิ และรู้สึกสับสนว้าวุ่นเป็นอย่างมาก สุดท้ายก็กลับมาที่ภาษาซี โดยคิดว่าจะเขียนโปรแกรมเล่นๆ แก้เซ็งสักหน่อย พลันก็คิดขึ้นได้ว่า ทำไมเราไม่ลองเขียน GUI ด้วยภาษา C ซะเลยล่ะ
เหตุผลสำคัญหลังจากที่ติดตั้ง Raspberry Pi เรียบร้อยแล้วก็พยายามจะลง Qt แต่ก็ติดปัญหาเรื่องความเร็ว และ Qt กลับทำงานอืดอาดมาก พอเปลี่ยนไปหยิบเอา NanoPi M1 มาลงเพื่อใช้งานดูก็พบว่าทรัพยากรมันจำกัดจำเขี่ยมาก บังเอิญเหลือบตาไปเห็นโปรแกรม Geany เลยลองเปิดดูพบว่าเป็น Editor สำหรับภาษา C ได้เป็นอย่างดีก็เลยลองเขียนเพื่อติดต่อกับ gtk เวอร์ชัน 2.0 ดูก็ใช้งานได้ดีเลยตั้งใจว่าช่วงหยุดงานนี้น่าจะเรียนรู้ภาษา C และ GUI ด้วย gtk ได้ให้จนได้
GTK ชื่อเรียกของ GIMP Toolkit ซึ่งก็เป็นเครื่องมือหนึ่งของโปรแกรม GIMP ซึ่งเป็นโปรแกรมจัดการรูปภาพที่นิยมในฝั่ง Linux ถึงแม้จะสู้ Adobe Photoshop ไม่ได้ แต่ก็เป็นโปรแกรมที่มีความสามารถไม่น้อย ใช้งานง่ายไม่เปลืองทรัพยากรเครื่องมาก
ส่วนรายละเอียดอื่นๆ เดี๋ยวขอศึกษาก่อนว่ามีรายละเอียดอย่างไร ถึงแม้ว่าขณะนี้จะเป็น gtk 3.0 แล้ว แต่ก็เริ่มจาก gtk 2.0 ก่อนก็แล้วกันนอกนั้นค่อยว่ากันอีกที
ปกติเรารู้กันว่าภาษา C ไม่มีหลักการทำงานแบบ OOP ก็จริง แต่การเขียนโปรแกรมด้วย gtk ก็มีหลักการแบบ OOP เหมือนกัน เรื่องนี้ก็กำลังศึกษาว่าเป็นอย่างไร และขอติดไว้ก่อนว่าแท้จริงเป็นอย่างไร
การติดตั้ง
sudo apt-get install libgtk2.0-dev
การ Compile และ Build
gcc `pkg-config --cflags --libs gtk+-2.0` gtktest.c -o gtktest
คอนฟิกโปรแกรม Geany
- เลือก Build -> Set Build Commands
- เพิ่ม `pkg-config --cflags --libs gtk+-2.0` ในช่อง Compile และ Build
ลองเขียนโปรแกรมแรก
#include <gtk/gtk.h>
int main(int argc, char *argv[]){
gtk_init(&argc, &argv);
GtkWidget *win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(win);
gtk_main();
return 0;
}
จากนั้นก็คอมไพล์ด้วยคำสั่ง
gcc `pkg-config --cflags --libs gtk+-2.0` gtktest.c -o gtktestหรือกดปุ่ม F9 และ F5 ในโปรแกรม Geany เพื่อสร้างไฟล์และสั่งรันโปรแกรมก็จะได้หน้าจอดังนี้
นี่เป็นโปรแกรมเริ่มแรกสำหรับการใช้งาน gtk+-2.0 ในแบบง่ายๆ เดี๋ยวเราค่อยมาว่ากันต่อว่าแต่ละส่วนคืออะไร และจะทำงานให้ครบถ้วนได้อย่างไร คอยติดตามนะครับ... สวัสดีครับ
เรียนรู้เพิ่มเติม
https://www.cc.gatech.edu/data_files/public/doc/gtk/tutorial/gtk_tut.html#toc3
http://zetcode.com/gui/gtk2/
http://epic-alfa.kavli.tudelft.nl/share/gtk-doc/html/gtk2/
ไม่มีความคิดเห็น:
แสดงความคิดเห็น