亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1050 | 回復(fù): 0
打印 上一主題 下一主題

ubuntu 下Gtk 開發(fā)環(huán)境建立 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-02-18 09:39 |只看該作者 |倒序瀏覽

                                1.Gtk 簡介
    GTK (GIMP Toolkit) 是一套用于創(chuàng)建圖形用戶界面的工具包。它遵循 LGPL
許可證,所以可以用它來開發(fā)開源軟件、自由軟件,甚至是封閉源代碼的商業(yè)軟件,而不用花費任何費用來購買許可證和使用權(quán)。當(dāng)前,GTK已經(jīng)被成功地應(yīng)用到
了大量的自由軟件及商業(yè)軟件中,已經(jīng)取得了很大的成功。
    當(dāng)前,GTK主要由幾大組件構(gòu)成:
*Gtk+:GTK的主要構(gòu)件,包括所有的圖形控件及大量實用的API。
*Glib:包含一些標(biāo)準(zhǔn)函數(shù)的替代函數(shù),以及一些處理鏈表等數(shù)據(jù)結(jié)構(gòu)的函數(shù)等。這些替代函數(shù)被用來增強GTK 的可移植性,同時提供 libc 的對應(yīng)函數(shù)的增強版本。
*Pango:該組件用來處理國際化文字輸出。
   GTK是一個跨平臺的GUI開發(fā)庫, 它是用C語言以O(shè)O的方式(俗稱面向?qū)ο驝, 又稱OO-C)開發(fā)的. 只要是有一定C語言和GUI開發(fā)基礎(chǔ), 用GTK是一件很簡單的事.
2.安裝與配置
   筆者的操作系統(tǒng)為ubuntu 8.04
sudo apt-get install build-essential       #這將安裝gcc/g++/gdb/make 等基本編程工具
sudo apt-get install gnome-core-devel  #這將安裝 libgtk2.0-dev libglib2.0-dev 等開發(fā)相關(guān)的庫文件
sudo apt-get install pkg-config            #用于在編譯GTK程序時自動找出頭文件及庫文件位置
sudo apt-get install devhelp                 #這將安裝 devhelp GTK文檔查看程序
sudo apt-get install libglib2.0-doc libgtk2.0-doc  #這將安裝 gtk/glib 的API參考手冊及其它幫助文檔
sudo apt-get instal glade libglade2-dev #這將安裝基于GTK的界面構(gòu)造程序
運行如下命令檢查安裝:
pkg-config --cflags gtk+-2.0
-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include
-I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
-I/usr/include/freetype2 -I/usr/include/libpng12
-I/usr/include/pixman-1
pkg-config --libs gtk+-2.0
-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm
-lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl
-lglib-2.0
3.實例
#include gtk/gtk.h>
int main(int argc, char *argv[])
{
    /* A window and a button */
    GtkWidget *win, *btn;
    /* Initialize GTK */
    gtk_init(&argc, &argv);
    /* New a window and a button */
    win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    btn = gtk_button_new_with_label("Close yourself");
   
    /* Add button to window container */
    gtk_container_add(GTK_CONTAINER(win), btn);
    /* Connect "close" and button to quit op */
    g_signal_connect(win, "destroy", G_CALLBACK(gtk_main_quit), NULL);
    g_signal_connect(btn, "clicked", G_CALLBACK(gtk_main_quit), NULL);
    /* Show all in the window */
    gtk_widget_show_all(win);
    /* Main loop, wait for signals */
    gtk_main();
    return 0;
}
上面的程序為main.c, 它所完成的功能就是創(chuàng)建一個窗口(window), 在窗口中添加一個按鈕(button), 點擊這個button或者是窗口的關(guān)閉按鈕, 就會實現(xiàn)窗口的關(guān)閉, 并使程序結(jié)束.
這幾行代碼很簡單, 主要有幾個關(guān)鍵:
  • GtkWidget: 創(chuàng)建一個窗口和一個按鈕. GTK中的控件都要用GtkWidget類型創(chuàng)建.
  • gtk_init(): 對程序用命令行參數(shù)進行初始化.
  • gtk_xxx_new(): 新建xxx類型的控件
  • gtk_container_add(): 把控件添加到container容器中, 在這里是把按鈕添加到窗口中.
  • g_signal_connect(): 把GTK控件對應(yīng)的操作信號, 連接到CALLBACK函數(shù)上.
  • gtk_widget_show_all(): 顯示窗口.
  • gtk_main(): 開始main loop, 等待信號觸發(fā)事件.
4. 編譯
我用一個makefile來展示編譯命令.
# Target, compiler and objects.
EXEC   = test
CC     = gcc
OBJ    = main.o
# Use for compile.
CFLAGS = `pkg-config --cflags gtk+-2.0`
# Use for link.
CLIBS  = `pkg-config --libs gtk+-2.0`
$(EXEC): $(OBJ)
    $(CC) -o $@ $^ $(CLIBS)
main.o: main.c
    $(CC) -c $ $(CFLAGS)
clean:
    rm $(EXEC) *.o
這里于普通的makefile不同的地方是CFLAGS和CLIBS兩個變量, 分別用于編譯和鏈接.
用`......`引用pkg-config實現(xiàn)參數(shù)的flags.
在編譯時只需要在終端下執(zhí)行make命令, 就會在目錄下生成test可執(zhí)行文件.
               
               
               
               
               
               
               

本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u2/87718/showart_1832363.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP