GTK 重拾 09 GTK 中的元件(一)

2021-09-20 00:09:43 字數 2797 閱讀 3910

(一):寫在前面

在這篇文章中主要介紹了gtk+程式中的各種構件,這是講解構件的第乙個部分,另外一部分將在下乙個小節中講到。構件是建立乙個gui程式的基礎。在gtk+的長期發展過程中,一些特定的構件逐漸成為了大多數程式設計工具集和幾乎所有的作業系統的公用標準了。例如,按鈕,選擇框或者是乙個滑動條。對於gtk+來說,內建了很多常用的專用構件,供我們使用。

(二):gtkbutton

gtkbutton是乙個簡單易用的構件,通常被用於觸發乙個動作。

下面我們來看一下gtkbutton的使用方法:

#include int main(int argc,char *ar**)

在上面的例子中,就是展示乙個按鈕放置在乙個fixed容器中,當我們按下按鈕的時候,程式就會退出。

button = gtk_button_new_with_label("quit");

這段**就生成了乙個帶有標籤的gtkbutton構件。

g_signal_connect(g_object(button),"clicked",g_callback(gtk_main_quit),g_object(window));
我們來看一下執行效果:

(三):gtkcheckbutton

gtkcheckbutton也是乙個構件,他有兩種狀態,「開」和「關」,開表示乙個可見的浮複選標記。

我們來看一下他的用法:

#include 

void toggle_title(gtkwidget *widget,gpointer window)

else

}int main(int argc,char *ar**)

我們要展示的功能就是:標題欄的顯示狀態根據構件gtkcheckbutton的狀態變化而變化。

check = gtk_check_button_new_with_label("show title");

gtk_toggle_button_set_active(gtk_toggle_button(check),true);

乙個gtkcheckbutton構件被生成了並且預設為已標記(即狀態為開啟)。

gtk_widget_unset_flags(check,gtk_can_focus);
這行**是取消了對核取方塊的預設鎖定,這樣做到原因很簡單,是因為我們可以任意設定核取方塊外面是否「罩」上乙個「框」。

而最上面的監聽函式就是實現功能的關鍵位置:這樣,標題欄的顯示狀態根據構件gtkcheckbutton的狀態變化而變化。

我們來看一下執行效果:

(四):gtkframe

gtkframe是一種裝飾性的框架,還可以為他設定乙個標籤(可有可無)。

我們來看一看gtkframe是如何使用的,以及其使用後的效果:

#include 

int main(int argc,char *ar**)

這個例項我們展示了四種不同風格的frame框架。這些框架構件是利用**所無法布局的。

frame1 = gtk_frame_new("shadow in");

gtk_frame_set_shadow_type(gtk_frame(frame1),gtk_shadow_in);

我們生成了乙個gtkframe構件,並且還為他設定了陰影種類。

(五):gtklabel

gtklabel的功能很明顯,是用來顯示文字的,當然,他也會支援markup語法,我們在這裡展示兩個例子:

1:普通gtklabel的使用

#include int main(int argc,char *ar**[

])

在這裡顯示了乙個歌詞,居中顯示,我們來看一下執行效果:

2:支援markup語法的label

下面我們來展示gtklabel如何支援markup語法:

#include 

int main(int argc,char *ar**)

下面就是支援markup語法效果的label:

(六):寫在後面

在這裡,我們先介紹幾種常用的gtk+中的構件,後面一節我們會接著介紹gtk+中還有哪些有用的構件。

GTK 重拾 10 GTK 中的元件(二)

一 寫在前面 在上面乙個小節中,我們講解了在gtk 2.0中的一些常用的構件,在這一小節中,我們將繼續學習gtk 中常用的稍微複雜的構件,這裡我們主要是學習gtkcombobox,gtkentry,gtkiconview,gtkimage,gtkseparator,gtkstatusbar。好了,現...

GTK 重拾 05 工具欄的使用

一 寫在前面 在我們上乙個小節的學習當中,學習了解了如何使用選單欄來管理我們的視窗,但是相對來說,gtk 2.0在處理選單欄的時候有些小麻煩,很容易使人迷惑,不過大體了解一下這個意思就行,只要能夠會使用選單欄就行,如果真是鬧不明白他們之間的包含關係,就直接使用之前的 進行新增就行。然後就是後面我們會...

指令碼語言的GUI元件 GTK習作

這幾天在學習gtk,順便寫了個習作,用於指令碼語言顯示圖型化介面的元件,目前包含顯示messagebox,checkbox,radiobutton,combobox 及文字框輸入功能,這樣在寫指令碼時,一些簡單的輸入就可以使用圖型化的方式完成了。樣例 指令碼 bin bash rotatedirec...