查看: 1664|回复: 5
|
Linux下的GUI編程第一篇--初探GTK-+2.0
[复制链接]
|
|
Linux下的GUI編程第一篇--初探GTK-+2.0
小弟的上一篇發表中曾提到,Linux 在本土企業界的使用面對的其中一個問題是軟件支援。
縱觀本土軟体公司,有能力開發Linux平臺軟体的究竟有多少?
其原因大概是應為教育機構,學院,大學裏所修讀的課程裏大多不包括這類編程工具。
參考文獻有少得可憐。中文方面的資料更是屈指可數。
所以,這次小弟自不量力來為大家介紹一下在Linux 下的GUI開發工具。
如有貽誤,還望糾正指教。
首先,先看看下面這個程式(我自己本身習慣看範例才去了解,所以有如此安排)
#include<gtk/gtk.h>
#include<stdio.h>
int main(int argv,char *argc[])
{
GtkWidget *wndMain;
gtk_init(&argc,argv);
wndMain = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_show(wndMain);
gtk_main();
return 0;
}
編譯指令為
#gcc hello.c -ohello `pkg-config --cflag --libs gtk-+2.0`
如果編譯出現問題,請檢查Gtk-+2.0 是否安裝。
#include<gtk/gtk.h>
如果對於這行有問題的話。。。。請自己參考有關C語言的書籍。(基本上gtk.h檔包含了gtk 的所有函數宣告)
int mian(int argv,char *argc[])
很多C語言新手都不明白爲何不是 int main(void) 或者 void main(void)....
基本上int argv 是呼叫此程式是所傳進來的變量數,而char *argc則是變量列陣。
gtk_init(&argc,&argv);
設定Gtk的起始環境。
好了,第一個Gtk的指針登場啦!
GtkWidget *wndMain;
GtkWidget 是一個附件工具。
wndMain = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_new 函數創建一個新的Gtk 視窗並將其地址傳囘。
GTK_WINDOWS_TOPLEVEL 變數告訴gtk_window_new函數創建一個大小為200x200的 top level視窗
gtk_show(wndMain);
相信單看函數名字聰敏的你已經知道那是將wndMain所指像的視窗顯示出來的吧。
最後gtk_main();函數將程式進程導入gtk的巡迴進程。
結論:
這是一個“廢物”程式,它並不會為你做任何事。只是顯示一個沒有公用的視窗。
至於如何將訊息(signal)和自定義函數接連起來,在下一篇中再談。
(如果打了這麽辛苦反應不好就不做了,浪費時間啦 |
|
|
|
|
|
|
|
发表于 19-6-2004 09:52 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 20-6-2004 01:35 AM
|
显示全部楼层
可惜我用的比较多的是KDE ,而且我觉得Qt编程比GTK+容易明白,所以就跑去学了一些Qt了,但学到一半就停了。跳去wxWidgets,在MSW 下还蛮顺利的,但是在Linux 环境下还有一些麻烦,尚在考虑下一步应该怎么走。
欢迎你发表Gtk的文章,让我可以从中学习。
|
|
|
|
|
|
|
|
楼主 |
发表于 20-6-2004 10:59 PM
|
显示全部楼层
我現在也用着Glade.
不過個人認爲還是練好基本功好點。
Glade 就不能做Gtk_Tree_View的東西。
一般上我寫的程式都會在Linux 和windows上compile。
其實我大概想了想,下來應該會有幾篇文章要發表
1. Hello world 程式,signal connection 原理
2. 使用Glade與如何加入自己的代碼(和大家分享一下自己寫cross platform program 的經驗).
3. 用Glade + devC++ 做windows base的程式. |
|
|
|
|
|
|
|
发表于 21-6-2004 09:09 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 17-8-2004 10:43 PM
|
显示全部楼层
太好了!!!我第一个支持!!!
我一直很想学linux!!! |
|
|
|
|
|
|
| |
本周最热论坛帖子
|