GTK+圖形化應用程式開發學習筆記

來源:互聯網
上載者:User

http://blog.chinaunix.net/u/22935/showart_305786.html
一、初始化GTK+

       寫GTK+程式需要調用gtk_init函數對GTK+ 庫函數進行初始化。

1.

名稱::

gtk_init

功能:

初始化GTK+庫

標頭檔:

#include <gtk/gtk.h>

函數原形:

void gtk_init(int *argc,char ***argv);

參數:

argc    指向主函數argc的指標

argv    指向主函數argv的指標

傳回值:

      

 

 

 

 在你程式使用到GTK+工具庫之前,必須對它進行初始化。gtk_init可以初始化GTK+工具庫。gtk_init的參數的指向主函數argc,argv的指標,它可以改變一些不滿足GTK+函數要求的命令列參數。

       因為gtk_init函數沒有傳回值,所以如果在初始化過程中發生錯誤程式就會立即退出。

                                                  

2.

名稱::

gtk_init_check

功能:

初始化GTK+庫

標頭檔:

#include <gtk/gtk.h>

函數原形:

gboolean gtk_init_check(int *argc,char ***argv);

參數:

argc    指向主函數argc的指標

argv   指向主函數argv的指標

傳回值:

成功返回TURE,出錯返回FALSE。

      

 

 

 

 還有一個GTK+庫初始化函數gtk_init_check,它的作用和gtk_init完全相同。唯一的區別是gtk_init_check有傳回值,可以判斷初始化是否成功。

 

二、建立視窗

       GTK+的構件是GUI的組成部分。視窗、檢查框、按鈕和編輯欄位都屬於構件。通常將構件和視窗定義為指向GtkWidget結構的指標。在GTK+中,GtkWidget是用於所有構件和視窗的通用資料類型。

       GTK+ 庫進行初始化後,大多數應用建立一個主視窗。在GTK+中,主視窗常常被稱為頂層視窗。頂層視窗不被包含在任何其他視窗內,所以它沒有上層視窗。在GTK+ 中,構件具有父子關係,其中父構件是容器,而子構件則是包含在容器中的構件。頂層視窗沒有父視窗,但可能 成為其他構件的容器。

       在GTK+中建立構件分兩步:建立構件,然後使它可以看得見。gtk_window_new函數負責建立視窗。gtk_widget_show函數負責使它成為可見。

      

2.

名稱::

gtk_window_new

功能:

建立視窗

標頭檔:

#include <gtk/gtk.h>

函數原形:

GtkWidget * gtk_window_new(

參數:

 

傳回值:

 

 

 

 

 

 

 

 

 

3.

名稱::

gtk_widget_show

功能:

顯示視窗

標頭檔:

#include <gtk/gtk.h>

函數原形:

gtk_widget_show( GtkWidget *window)

參數:

 

傳回值:

 

 

 

 

 

 

 

 

 

 

三、GTK+的事件迴圈

       對GTK+進行初始化並將視窗和構件置於螢幕以後,程式就調用get_main函數等待某種事件的執行。

 

4.

名稱::

gtk_main

功能:

等待事件的發生

標頭檔:

#include <gtk/gtk.h>

函數原形:

void gtk_main(void);

參數:

傳回值:

 

    

 

 

 

   我們在來看看第一章的程式。也許大家就會理解上面函數的作用了。

/*base1.c*/

#include <gtk/gtk.h>

                                                                                                                                             

int main(int argc, char* argv[])

{

GtkWidget *window;

   gtk_init(&argc,&argv);

   window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

   gtk_widget_show(window);

   gtk_main();

   return FALSE;

}

 

$ gcc -o base1 base1.c 'pkg-config --cflags --libs gtk+-2.0'

       $./base1

 

 

程式開始定義了一個表單,然後用函數gtk_init初始化GTK+庫。用函數gtk_window_new建立一個表單,用get_widget_show顯示該表單。程式最後調用gtk_main()進入主迴圈,等待各種事件的發生.

       注意該程式不能正常退出,原因是程式沒有回呼函數。關於回呼函數我們將會在下面介紹。

 

 

四、結束應用程式

5.

名稱::

gtk_main_quit

功能:

結束應用程式

標頭檔:

#include <gtk/gtk.h>

函數原形:

void gtk_main_quit(void);

參數:

傳回值:

       gtk_main_quit函數可以結束程式 ,它通常在回呼函數中被調用。下面我們介紹回呼函數。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.