Time of Update: 2018-12-03
GtkProgressBar常用來顯示目前的工作進度,例如程式安裝、檔案複製、下載等,可以使用gtk_progress_bar_new()建立一個GtkProgressBar,若要設定進度比例,可以使用gtk_progress_bar_set_fraction()函式,可設定的值為0.0到1.0,相對應的要取得目前進度比例,可以使用gtk_progress_bar_get_fraction()函式。GtkProgressBar可以使用gtk_progress_bar_set_text()設定文字
Time of Update: 2018-12-03
GTK rc 檔案的格式以下樣本說明了 rc 檔案的格式。它取自 GTK 發行包中名為 testgtkrc 的檔案中,但我增加了一些註解和內容。你也許希望在自己的應用程式中包含這些註解以有助於使用者在使用過程中進行小調整。有幾個指令用於改變一個構件的屬性。fg - 設定構件的背景色。bg - 設定構件的前景色彩。bg_pixmap - 設定構件的背景為一幅像素圖。font - 設定構件使用的字型。另外,一個構件可以有幾種狀態,你可以為每種狀態設定不同的顏色,映像和字型。這些狀態是:NORMAL
Time of Update: 2018-12-03
GtkToolBar可以讓您製作工具列,將一些常用指令群組並依使用者需求而顯示於使用介面上,要建立GtkToolBar,只要使用gtk_toolbar_new()函式,要插入一個項目,則使用gtk_toolbar_insert(),所插入的項目是GtkToolItem的實例,而GtkToolItem可以直接使用gtk_tool_item_set_tooltip_text()設定提示文字,但若您要設定影像與文字,則必須知道,GtkToolItem是GtkBin的子類這個事實:GtkContaine
Time of Update: 2018-12-03
GTK 的 rc 檔案GTK 有自己預設處理應用程式的方法,這就是使用rc設定檔。這些檔案可用於給幾乎任何構件設定顏色,也能為一些構件的背景貼上一幅像素圖。rc 檔案的功能在你的應用程式開始處,應包含一個如下的函數調用:void gtk_rc_parse( char *filename );把 rc 檔案名稱傳遞給被調用的函數,隨後 GTK
Time of Update: 2018-12-03
Hello World 詳解現在我們知道基本理論了,讓我們來詳細分析helloworld樣本程式。這是按鈕被點擊時要調用的回呼函數。在這個樣本中我們忽略了參數 widget 和 data,但是使用這些參數也不難。下一個樣本會使用 data 參數來告訴我們哪個按鈕被按下了。void hello( GtkWidget *widget, gpointer data ){ g_print ("Hello World/n");}接下來的一個回呼函數有點特殊。"delete_
Time of Update: 2018-12-03
GtkStyle是GTK與GDK之間一個重要的抽象層,它允許您自訂元件的外觀樣式,而不用直接親自處理GDK的繪圖,GtkStyle為GtkWidget的成員之一:typedef struct { /* The style for the widget. The style contains the * colors the widget should be drawn in for each state * along with graphics contexts used to
Time of Update: 2018-12-03
一個構件的剖析要想建立一個新的構件,最重要的是要對 GTK 對象的工作原理有所瞭解。這一節只是一個簡述,詳見參考手冊。GTK 構件具有物件導向的特性。然而,它是用標準的 C 實現的。這極大的改善了在當前 C++ 編譯器上使用的可移植性和穩定性;但是,這也意味著寫構件的人必須注意一些實現的細節。一個構件類的所有執行個體(比如所有的按鈕構件)的共有資訊儲存在類結構裡,類的訊號資訊只以該結構儲存了一份(充當 C
Time of Update: 2018-12-03
GtkAboutDialog是GtkDialog的子類別,提供您在製作應用程式「關於 XXX」時的內建對話方塊,直接以程式實例來看看它的一些功能:gtk_about_dialog_demo.c#include <gtk/gtk.h>void button_clicked(GtkWidget *button, gpointer data) { GtkWidget *dialog; GdkPixbuf *logo; GError *error = NULL;
Time of Update: 2018-12-03
編寫你自己的構件概述雖然隨 GTK 提供了許多類型的構件,這些構件也基本能滿足需要,但有時你仍然需要建立自己的構件類型。因為 GTK完全應用了構件繼承,並且有接近你的需求的構件,通常只要幾行代碼就可以編寫一個新的構件類型。但是在開始之前,確信沒有人編寫了一個同樣的構件。這樣可以避免重複勞動,使 GTK構件保持最小的數目,且有助於保持代碼和不同應用程式介面的一致性。另一方面,一旦你做完了自己的構件,告知大家,其他人會因此而受益。最好的發布地點可能是 gtk
Time of Update: 2018-12-03
GtkColorButton是一個外觀為目前選擇顏色的按鈕,按下時會出現選取顏色的對話方塊,您可以使用gtk_color_button_new()建立按鈕,或是使用gtk_color_button_new_with_color()指定初始顏色建立按鈕,使用gtk_color_button_set_color()或gtk_color_button_get_color()設定或取得目前的顏色,而這與一個GdkColor有關:typedef struct { guint32 pixel;
Time of Update: 2018-12-03
GtkScale可以是水平或垂直的拉桿元件,您可以拉動上面的拉桿,拉桿的位置代表某個值並可以加以顯示,您可以使用gtk_hscale_new_with_range()建立一個水平並具有上、下界及遞增值拉桿元件,gtk_vscale_new_with_range()則是垂直元件,GtkScale基本上會顯示浮點數,您可以使用gtk_scale_set_digits()設定顯示的位數,數字的顯示位置可以有上、下、左、右,可使用gtk_scale_set_value_pos()來設定,可設定的值為GT
Time of Update: 2018-12-03
若想要自訂對話方塊,則可以使用GtkDialog來組合元件,GtkDialog預設是分作兩個區域的元件,如下圖所示: 基本上,對話方塊上方是置放各式元件的區域,下方是置放按鈕的區域,中間以分隔線作區隔,從類別結構上來看:typedef struct { GtkWidget *vbox; GtkWidget *action_area;} GtkDialog; GtkDialog上方vbox為一個 GtkVBox,下方action_area為一個 GtkHButtonBox,
Time of Update: 2018-12-03
GtkFontButton是一個外觀為目前選擇字型名稱的按鈕,按下時會出現選取字型的對話方塊,您可以使用gtk_font_button_new()建立按鈕,或是使用gtk_color_button_new_with_font()指定初始字型建立按鈕,指定時使用字串指定,格式為"Family StyleSize"。Family為字型名稱,例如"Arial"、"Serif"這樣的名稱。Style為字型樣式,可設定的樣式依字型而有所不同,通常可以指定的有粗體"Bold"、斜體"Italic"、粗斜體"
Time of Update: 2018-12-03
GtkEntry提供一個文字輸入欄位,可以輸入文字或是設定為一般顯示、密碼顯示或搭配 GtkEntryCompletion 製作自動完成功能等,自動完成的範例稍微複雜,在這邊先不提及,以下的程式是個簡單的設定示範,範例中使用了 GtkTable 進行版面配置:gtk_entry_demo.c#include <gtk/gtk.h>int main(int argc, char *argv[]) { GtkWidget *window; GtkWidget
Time of Update: 2018-12-03
建立一個複合構件介紹你可能樂於建立這樣一種類型的構件,它僅僅是其它 GTK 構件的一個組合。為組裝使用者介面元素以重複使用提供了便利的方法。在標準發布中的檔案選擇和顏色選擇構件就是這種類型構件的樣本。我們將要在這一節建立一個井字遊戲構件,一個 3X3
Time of Update: 2018-12-03
GtkCheckMenuItem、GtkRadioMenuItem與GtkTearoffMenuItem都是GtkMenuItem的子類,GtkCheckMenuItem可以產生一個核取方塊,GtkRadioMenuItem產生單選鈕,它們的使用上與 GtkCheckButton與 GtkRadioButton
Time of Update: 2018-12-03
GtkTextView可用於顯示文字與編輯文字,其本身並不具備捲軸功能,您可以使用GtkScrolledWindow套於其上,為其增加捲軸功能,GtkScrolledWindow可以簡單的使用gtk_scrolled_window_new()來建立:GtkWidget *scrolledWindow = gtk_scrolled_window_new(NULL,
Time of Update: 2018-12-03
塗鴉板,一個簡單的繪圖程式概述在這一章,我們會建立一個繪圖程式。期間,我們講解如何處理滑鼠事件、如何在視窗你繪圖和如何使用後端位元影像繪製更好的效果。在建立了簡單的繪圖程式之後,我們會擴充該程式,通過添加對XInput裝置的支援,如手寫板。GTK 提供用來從這種裝置輕易地獲得如壓力和傾角這樣的擴充資訊的常式。<<< PreviousHomeNext >>>深入的學習 事件處理
Time of Update: 2018-12-03
使用撰寫程式的方式來建構選單、工具列等使用者介面,過程有時過於繁瑣,您可以使用GtkUIManager從一個或多個使用者介面定義檔讀取介面定義,並自動建立相對應的Gtk元件,使用者介面定義檔是一個XML檔案。舉個實際的例子來說,可以改寫一下 GtkMenuBar、GtkMenu 與 GtkMenuItem 中的範例,使用GtkUIManager與XML定義檔來作出相同的效果,若XML定義檔如下所示:gtk_ui_manager.xml<ui> <menubar
Time of Update: 2018-12-03
狀態列通常位於視窗的底部,用以顯示目前視窗操作狀況的一些簡單訊息,在GTK中的狀態列元件是GtkStatusBar,您可以使用gtk_statusbar_new()來建立。視窗中各個元件或操作都可以有相對應的狀態訊息,為了讓狀態列區別哪個訊息屬於哪個元件或操作,GtkStatusBar使用ContextID來加以識別,您可以使用gtk_statusbar_get_context_id()並給定一個名稱以取得對應的Context ID,例如:GtkWidget *statusbar;gint