1. 程式人生 > >Linux 下從頭再走 GTK+-3.0 (二)

Linux 下從頭再走 GTK+-3.0 (二)

  僅僅建立一個空白視窗是不夠的,下面我們為建立的視窗新增一個按鈕。

以 Hello,World!為例。

首先建立一個原始檔:example2.c 內容如下。

#include  <gtk/gtk.h>

//點選按鈕後被呼叫的函式,用於輸出hello,world
static void print_msg (GtkWidget *button , gpointer data)
{
    printf("Hello , world!\n");
}

static void activate (GtkApplication *app , gpointer data)
{
    GtkWidget 
*win; //申明一個按鈕 GtkWidget *button; //申明一個盒容器,用於容納按鈕,控制大小 GtkWidget *button_box; win = gtk_application_window_new(app); gtk_window_set_title(GTK_WINDOW(win) , "Button test"); gtk_window_set_default_size(GTK_WINDOW(win) , 200 , 200); //建立一個盒容器,並設定水平放置 button_box = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); //
gtk_orientation_horizontal //將盒容器包含進window中 gtk_container_add(GTK_CONTAINER(win) , button_box); //建立一個按鈕,並帶有“My button” 的標籤 button = gtk_button_new_with_label("My button"); //連線訊號,讓點選按鈕後,便呼叫 print_msg 函式 g_signal_connect(button , "clicked" , G_CALLBACK( print_msg ) , NULL);
 
 //
將按鈕放入盒容器中 gtk_container_add(GTK_CONTAINER(button_box) , button); //顯示window及其所有控制元件 gtk_widget_show_all(win); } int main(int argc , char **argv) { GtkApplication *app; int app_status; app = gtk_application_new("org.gtk.exmple" , G_APPLICATION_FLAGS_NONE); g_signal_connect(app , "activate" , G_CALLBACK(activate) , NULL); app_status = g_application_run(G_APPLICATION(app) , argc , argv); g_object_unref(app); return app_status; }

  編譯,執行結果如下:

相關推薦

Linux 從頭 GTK+-3.0 ()

  僅僅建立一個空白視窗是不夠的,下面我們為建立的視窗新增一個按鈕。 以 Hello,World!為例。 首先建立一個原始檔:example2.c 內容如下。 #include <gtk/gtk.h> //點選按鈕後被呼叫的函式,用於輸出hello,world static v

GTK+3.0相較與GTK+2.0建立盒的變化

在學習使用Glade軟體建立盒的過程中,發現GTK+3.0已經取消了gtk_hbox_new()和gtk_vbox_new(),只需要在常規選項裡面修改橫向和垂直即可。但為了弄懂GTK+3.0與GTK+3.0的不同,還是查閱了一些資源,主要區別如下: 一、GTK+2.0

Package gtk+-3.0 was not found in the pkg-config search path

path 二進制 all 項目 有時 rpm fedora ack share 問題描述:   在fedora21系統上通過rpmbuild構建fcitx的二進制包時出現以上錯誤,經老程序員指點:“是相應的開發包沒有安裝” 解決辦法:   yum installl gtk3

Linux安裝破解JIRA 6.3.6 並連接MYSQL5

alt ria ack 擴展 val strong jdb 參數 數據庫 序言 JIRA 是澳大利亞 Atlassian 公司開發的一款優秀的問題跟蹤管理軟件工具,可以對各種類型的問題進行跟蹤管理,包括缺陷、任務、需求、改進等。JIRA采用J2EE技術,能夠跨平臺部署。它

Linux程序的總結(3

程序的控制 1.程序的建立 fork()函式 在一個程式碼段中建立一個新的子程序可以使用fork()函式。 1.fork()函式以父程序為模板創建出了一個子程序,但是父子程序程式碼共享,資料獨有一份。也就是分配新的記憶體塊和核心資料結構。然後父程序的部分資料拷貝到了子程序。

ubuntu安裝pyenv+anaconda3-5.3.0+cuda

1.pyenv 按照GitHub上的教程: 安裝之前要限安裝curl 和git-core: sudo apt-get install curl git-core 接著開始正式安裝: $ curl -L https://raw.githubusercontent.com/yy

linux使用yum安裝新版php7.0

1、首先要更新yum源,不然是預設的老版本,一般都在5.6及以下,但是php7都出來好久了,效能提升50%以上! 按照系統更新yum源,我的是centos7,所以我執行下面的程式碼! CentOS/RHEL 7.x: rpm -Uvh https://dl.fedora

Linuxselect函式檔案描述符0狀態的問題

當然是在有輸入或者輸出時檔案描述符的讀寫狀態改變咯,比如標準輸入的檔案描述符是0,如果用select來等待0號檔案描述符,那麼當在鍵盤上敲字元時開始,就是檔案描述符的讀寫狀態改變之時,這時select函式就會返回;對於套接字描述符來說也是這樣,用select來等待一個伺服器描

linux中下載和安裝git2.3.0

yum -y install git 但是yum源中安裝的git版本是1.7.1,Github等需要的Git版本最低都不能低於1.7.2 。 所以我們一般不用上面的方法,而是下載git原始碼編譯安裝。

Linux的賬號管理(3)-chage/usermod/userdel

chage命令: 可以更好的展示和修改密碼的屬性,直接修改配置檔案也是可以的 -l:檢視一個賬戶和密碼有關的時間引數 -d:YYYY-MM-DD,修改最近一次更改密碼的時間 -E: YYYY-MM-DD,修改賬號的失效時間 -I:天數,設定密碼幾天後失效 -m:天數,設定密碼至少保留

LinuxPython2.6升級到3.6

一、檢視原Python2.6的安裝路徑 path(路徑)儲存在環境變數中,這是由作業系統維護的一個命名的字串。這些變數包含可用的命令列直譯器和其他程式的資訊。 import sys print sys.path # python --version    # 檢視pyt

centos,將python升級3.0+以上版本後,yum、update等無法使用問題

或許有些小夥伴將python升級後,懵比了!!!!!我的yum用不了啦!!!!!!!!解決完yum問題後,發現,哦呵呵呵呵呵呵 原來不止是yum阿。。。。 Now~ 我現在給大家上圖that how i sloved this problem before~~~~!! *

Linux 編譯安裝 gcc 5.4.0

以 gcc 5.4.0 版本為例,介紹用原始碼來編譯安裝 gcc 的方法 一、安裝 gcc 1、解壓縮 把 gcc-5.4.0.tar.gz 拷貝到系統中的某個目錄,比如 /usr/local/src,並解壓到此目錄: tar zxf gcc-5.4.0.tar

GTK+-3.0程式設計 () 為建立的視窗新增一個按鈕

  僅僅建立一個空白視窗是不夠的,下面我們為建立的視窗新增一個按鈕。 以 Hello,World!為例。 首先建立一個原始檔:example2.c 內容如下。 #include <gtk/gtk.h> //點選按鈕後被呼叫的函式,用於輸出hello,w

Linux命令列安裝weblogic10.3.6

先建立weblogic賬戶 groupadd weblogic useradd -g weblogic weblogic passwd weblogic mkdir /home/weblogicchown weblogic:weblogic /home/w

linux安裝jdk,2018年3月8日

jdk官網連結地址根據你的系統,右鍵複製連結,貼上到後面,注意前邊的.tar.gz和後邊的連結在xshell或者centos終端執行下面命令即可成功wget -O jdk-8u161-linux-x64

安裝pip3 以及將Linux的Python更改為3.x

上次切換了Python2和Python3。但是Python3並沒有pip,所有在Python3下不能安裝包。 更改Python的版本: 將Linux系統預設的Python2.x 更改為Python3.x 首先在終

linux使用軟連接之案例

pack 即使 什麽 重新 實戰 all mil 圖片 解耦 在筆者的上一篇文章介紹過怎麽通過linux的軟連接在不修改上傳代碼的情況下,將上傳到項目路徑下的圖片改為上傳到項目外面,防止重新部署後圖片被刪除了。同時還可以直接通過類似訪問靜態資源的方式訪問圖片。

Linux的sort排序命令詳解()

有時候學習指令碼,你會發現sort命令後面跟了一堆類似-k1,2,或者-k1.2 -k3.4的東東,有些匪夷所思。今天,我們就來搞定它—-k選項! 1 準備素材 [[email protected] opt]# cat testsort.txt google

瞭解EventBus 3.0 ()-傳送事件

雖然我在這裡寫下Eventbus,但是,還是覺得老司機教你 “飆” EventBus 3 才是很完美的文章。 1. 我們能傳送哪些事件 post傳送普通事件 postSticky 傳送粘性事件 粘性事件,當有訂閱者訂閱的時候,會從粘性事件列