在 GtkComboBox
在進行元件排版的時候,將元件以類似表格的方式排放也是很常見的排版方式,在GTK中,您可以使用GtkTable,您可以使用gtk_table_new()函式來建立:GtkWidget *table = gtk_table_new(3, 3,
GtkComboBox 與 GtkListStore中介紹了平坦無階層的選項如何製作,若想要製作有階層的樹狀結構,則要搭配GtkTreeStore來使用,主要的差別在於,GtkTreeStroe具有父子節點關係,也因此在加入子節點時,必須指明父節點為誰,加入節點可以使用gtk_tree_store_append()函式,設定節點資料可以使用gtk_tree_store_set()函式:void gtk_tree_store_append(GtkTreeStore *tree_store,
在學習GTK的過程當中,所需的學習檔案,可以在 GTK官方網站 的 Documentation中找到一些,其中推薦先看: GTK+2.0 TutorialGTK+/ Gnome Application Development 其中若要查詢API,可以看:GTK+Reference Manual 善用網頁右上方搜尋框,可以節省不少搜尋函式或類別說明的時間,而由 GTK的物件導向架構 中可以瞭解到,GTK在架構上運用了一些方式,使得使用GTK時可以支援許多物件導向的概念,
在看這篇之前,請先看過 GtkComboBox 以及 GtkComboBox 與 GtkListStore,由於以Model-View的方式設計,您可以在不修改Model的情況下,為Model換上另一個顯示的外觀(View),例如為 GtkComboBox 與 GtkListStore
Glade是針對GTK+的圖形使用者介面產生器 (User Interface Builder forGTK+),簡而言之,是一個您可以所視即所得設計視窗畫面,並為您產生相對應程式碼的工具,在這邊將示範一下如何於Ubuntu下安裝Glade,並以 GtkHBox與 GtkVBox 中的成果作為範例,介紹如何使用Glade產生相對應的畫面及編寫程式。在Ubuntu下要安裝Glade,可以如以下的指令,其中後兩個指令是為了執行自動產生程式碼的Shell指令autogen.sh所必需:$ sudo
有了 GtkTreeView 與GtkListStore 的基礎,要在GtkTreeView搭配GtkTreeStore就沒什麼好解釋的了,下面這個範例,只是將 GtkTreeView 與GtkListStore 範例中的createModel()函式,換成 GtkComboBox與 GtkTreeStore 中的createModel()函式,剩下的都沒有改變,也就是為 GtkComboBox與 GtkTreeStore
在 自訂 callback 函式中使用過GtkButton作為範例,最基本的GtkButton建立方式是透過gtk_button_new_with_label()來建立一個指定文字的按鈕,您也可以使用gtk_button_new_with_mnemonic(),這會建立一個具有提示底線及快捷鍵功能的按鈕,例如將 自訂 callback 函式 範例的gtk_button_new_with_label()該行換成gtk_button_new_with_mnemonic():button = gtk_
GLibGlib 是一種底層庫,建立 GDK 和 GTK 應用程式時該庫可提供許多有用的定義和函數。它們包括基本類型及限制的定義、標準宏、類型轉換、位元組序、儲存分配、警告和斷言、訊息記錄、計時器、字串工具 (string utilities)、掛鈎 (hook) 函數、一個句法掃描器、動態載入模組和自動字串補全,它也定義了許多資料結構(及其相應的操作),包括儲存塊、雙向鏈表、單向鏈表、雜湊表、串(動態增長)、串塊(串的組)、數組(大小可隨元素的加入而增長)、平衡二叉樹、N 叉樹、夸克
在版面配置上,可以會使用GtkNootbook來作功能頁的分類,它提供多個顯示頁,可以藉由上方的標籤來選擇所要的功能頁面,下面的程式簡單的示範如何將元件加入GtkNotebook成為一個標籤頁,其中createTab()函式用以建立一個GtkHBox,內含圖片與文字,用以作為功能頁的標籤顯示,要加入一個功能頁,可以使用gtk_notebook_append_page()函式,指定功能頁內容及標籤。gtk_note_book_demo.c#include
雙向鏈表以下的函數用於建立、管理和銷毀標準雙向鏈表。鏈表中每個元素都包含一塊資料和指向前後元素的指標。這使得通過鏈表的雙向移動變的容易。資料項目的類型是"gpointer",意指資料可為一指向實際資料的指標或 (通過類型轉換) 為一數值(但不要設想 int 和 gpointer有相同的大小!)。這些函數在內部按塊為鏈表元素分配空間,這比單為每個元素分配空間更有效率。不存在專用於建立鏈表的函數。而是簡單地建立一個類型為 Glist* 的變數,並把它的值設定為
GtkPaned是個版面分割元件,可以將視窗版面進行水平切割或垂直切割,您可以使用以下的函式來建立水平或垂直切割的GtkPaned:GtkWidget *gtk_hpaned_new(void);GtkWidget *gtk_vpaned_new(void);一個GtkPaned有左右或上下兩個區域可以加入子元件,您可以使用gtk_paned_pack1()將元件加入左邊或上面,使用gtk_paned_pack2()將元件加入右邊或下面:void
單向鏈表以上的許多函數用於單向鏈表是一樣的。下面是鏈表操作函數的部分列表:GSList *g_slist_append( GSList *list, gpointer data );GSList *g_slist_prepend( GSList *list, gpointer data );GSList *g_slist_insert( GSList *list,
事件遮罩決定了一個Widget會接收到哪些事件,不同的Widget會有不同預設的事件遮罩,您可以使用gtk_widget_set_events()來設定事件遮罩:void gtk_widget_set_events(GtkWidget *widget, gint events);
有些元件預設並沒有捲軸,當視窗或父元件無法顯示其大小時,只會顯示部份區域,但不會出現捲軸,如果您希望這類元件可以出現捲軸,則可以使用GtkScrolledWindow,在 GtkTextView 中曾經使用過GtkScrolledWindow,在使用gtk_scrolled_window_new()建立GtkScrolledWindow時可以給定GtkAdjustment,在 GtkSpinButton
中文版說明Table 1. 本手冊是由志願者翻譯完成,中文版著作權歸各位譯者所有:IDE-mail所譯章節cartoncarton@linux.net.cn1ddd 20ferryy0f0@21cn.com18,19huzhengforlinux@263.net5,7,8,9,10,11,16,17tinglefunting@163.net4konghuikonghui@xinhuanet.com2,3,6,12,13,14,15,21,附錄ABCyang_yiyang_yi_cn@yahoo.
設計視窗程式的人都知道,在視窗程式中最麻煩也最難的就是版面配置,每次都為了元件的位置擺放在傷腦筋,目前為止在 自訂 callback 函式
GtkFrame也是GtkContainer的子類,可以容納其它Widget,並呈現出以下的外觀(圖片取自 GtkFrame 檔案): 要建立GtkFrame,並將元件置於其中,基本上是如下的程式碼片段:GtkWidget *gtkFrame = gtk_frame_new("GtkHButtonBox");gtk_container_add(GTK_CONTAINER(gtkFrame), hbuttonBox);GtkButtonBox則是一個可以容納按鈕群組的不可視版面配置元件,
簡介GTK (GIMP Toolkit) 是一套用於建立圖形化使用者介面的工具包。它遵循 LGPL 許可證,所以你可以用它來開發開源軟體、自由軟體,甚至是封閉原始碼的商業軟體,而不用花費任何錢來購買許可證和使用權。GTK 被稱為 GIMP 工具包是因為最初寫它是用來開發 GIMP (GNU 影像處理程式) 的,但是它現在已經被用於很多軟體項目了,包括 GNOME (GNU 網路物件模型環境)。GTK 是在 GDK (GIMP Drawing Kit) 和 gdk-pixbuf
從這裡開始你首先做的第一件事,當然是下載 GTK 來源程式,並安裝它。你總是能從 ftp.gtk.org 得到最新版本。你也可以在 http://www.gtk.org/ 上查看其它 GTK 來源程式的資訊。GTK 使用 GNU autoconf 配置。解壓縮後,輸入 ./configure --help 查看選項列表GTK 源碼發布包中包含教程中所有樣本的代碼,每個樣本中包含有 Makefiles 檔案,用以方便編譯。一開始介紹 GTK,我們會儘可能從簡單的程式開始。這個程式建立 200x20