佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1658|回复: 5

Linux下的GUI編程第一篇--初探GTK-+2.0

[复制链接]
发表于 19-6-2004 03:15 AM | 显示全部楼层 |阅读模式
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)和自定義函數接連起來,在下一篇中再談。
(如果打了這麽辛苦反應不好就不做了,浪費時間啦
回复

使用道具 举报


ADVERTISEMENT

发表于 19-6-2004 09:52 PM | 显示全部楼层
我终於有知音了,我还以为只有我才学GTK+。
我是用Glade 和 Anjuta 的。
http://www.anjuta.org/
http://glade.gnome.org/

我还在使用GTK+ 1.2。
回复

使用道具 举报

发表于 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 | 显示全部楼层
很期待你将发表的文章。
回复

使用道具 举报

Kurtz 该用户已被删除
发表于 17-8-2004 10:43 PM | 显示全部楼层
太好了!!!我第一个支持!!!
我一直很想学linux!!!
回复

使用道具 举报

Follow Us
您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 18-5-2024 11:45 PM , Processed in 0.059000 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表