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; }
編譯,執行結果如下:
相關推薦
GTK+-3.0程式設計 (二) 為建立的視窗新增一個按鈕
僅僅建立一個空白視窗是不夠的,下面我們為建立的視窗新增一個按鈕。 以 Hello,World!為例。 首先建立一個原始檔:example2.c 內容如下。 #include <gtk/gtk.h> //點選按鈕後被呼叫的函式,用於輸出hello,w
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
Linux 下從頭再走 GTK+-3.0 (二)
僅僅建立一個空白視窗是不夠的,下面我們為建立的視窗新增一個按鈕。 以 Hello,World!為例。 首先建立一個原始檔:example2.c 內容如下。 #include <gtk/gtk.h> //點選按鈕後被呼叫的函式,用於輸出hello,world static v
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
windows應用程式【二】建立視窗
我們在建立視窗時需要的過程 關於訊息迴圈 因為處理器同時只能執行一個程式 因此我們需要作業系統去排程程式 因此我們只是將訊息傳給作業系統 等待迴應從而由作業系統來顯示我們需要的視窗 wndproc() 視窗過程負責用來響應某一類視窗收到的各種Windows訊息
如何使用@vue/cli 3.0在npm上建立,釋出和使用你自己的Vue.js元件庫
譯者按: 你可能npm人家的包過成千上萬次,但你是否有建立,釋出和使用過自己的npm包? 為了保證可讀性,本文采用意譯而非直譯。另外,本文版權歸原作者所有,翻譯僅用於學習。 儘管我已經在工作上用了Vue.js一段時間,但我從不需要在npm上釋出元件。但最
OpenGL ES 3.0程式設計指南學習筆記 第6章 頂點屬性、頂點陣列和緩衝區物件
1)vec2等為float型,也就是著色語言預設為float操作。float,vec2,vec3,vec4 2)矩陣以列優先順序儲存,也就是說矩陣可以看做是由幾個列向量組成,例如;mat3 myMat3 = mat3(1.0, 0.0, 0.0,//First column
Ubuntu14.04下安裝Anaconda3-4.3.0後,無法建立虛擬環境的解決方法
因為研究需要,涉及到了強化學習(Reinforcement Learning, RL)內容,繼而進入了一個充滿荊棘的的領域。 強化學習方面的書籍寥寥無幾,98年,Richard S. Sutton出版了他的強化學習導論第一版,即Reinforcement Lea
SDL系列講解(十二)建立視窗流程
專案合作 建立視窗時序圖 時序圖細節 看下建立視窗的流程圖,我們簡單說下過程。視窗建立,會先判斷是否進行了SDL_VideoInit,如果沒有,需要初始化。 完成了VideoInit的初始化後,我們使用LoadLibrary將andr
通俗易懂的 OpenGL ES 3.0(二)渲染三角形
前言 學習了OpenGL有一段時間,在繪製出屬於自己的三角形之前,會接觸許多理論上的知識。用簡單的方式寫下自己對OpenGL的一些見解。望大家取其精華去其糟粕 最終效果:改變背景色,並且繪製渲染一個暗紅色的三角形 必備知識 OpenGL需要我們至少設定一個
asp.net mvc 3.0詳細筆記__10__建立強型別檢視
歡迎一起來學習MVC 3.0,我們在一步一個腳印的做一個MVC 3.0的專案,期間會有很多值得探索的地方。將會學到Razor,Lampda,Entity Framework,LinqC#新特性等等知
iOS下OpenGL ES 3.0程式設計入門(一):構建Hello World環境
OpenGL ES簡介: OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL三維圖形 API 的子集,針對手機、PDA和遊戲主機等嵌入式裝置而設計。該API由Khronos集團定義推廣,Khronos是一個圖形軟硬體
java--建立一個帶預設構造方法(即無參構造)的類,在構造方法中列印一條訊息"Hello Constructor";再為這個類新增一個過載構造方法,令其接收一個字串引數,將其一起打印出來
題目描述:建立一個帶預設構造方法(即無參構造)的類,在構造方法中列印一條訊息"Hello Constructor";再為這個類新增一個過載構造方法,令其接收一個字串引數,並在這個有參構造方法中把"Hello Constructor"和接收的引數一起打印出來。 //Person類 class Pe
java--建立一個帶預設構造方法(即無參構造)的類,在構造方法中列印一條訊息"Hello Constructor";再為這個類新增一個過載構造方法,令其接收一個字串引數,將其一起打印出來
題目描述:建立一個帶預設構造方法(即無參構造)的類,在構造方法中列印一條訊息"Hello Constructor";再為這個類新增一個過載構造方法,令其接收一個字串引數,並在這個有參構造方法中把"Hello Constructor"和接收的引數一起打印出來。 //Perso
3.17 在二叉樹中找到一個節點的後繼節點
【題目】: 現在有一種新的二叉樹節點型別如下: 1 public class Node{ 2 public int value; 3 public Node left; 4 public Node right; 5 pu
Java之建立一個帶預設構造方法(即無參構造)的類,在構造方法中列印一條訊息"Hello Constructor";再為這個類新增一個過載構造方法,令其接收一個字串引數。
建立一個帶預設構造方法(即無參構造)的類,在構造方法中列印一條訊息"Hello Constructor";再為這個類新增一個過載構造方法,令其接收一個字串引數,並在這個有參構造方法中把"Hello Constructor"和接收的引數一起打印出來。 效果如下: 附上程
【分享】部落格美化(3)為部落格新增一個漂亮的分享按鈕
在前2篇部落格“部落格美化(1)基本後臺設定與樣式設定”與"部落格美化(2)自定義部落格樣式細節"中詳細介紹了部落格樣式設定的相關問題,當然可能是自己角度的問題,不是所有人都能完全搞明白,我個人的建議是,自己一邊改,一邊測試,只要花時間,肯定沒問題,想我這種js,css小白都可以慢慢修改一點,大家也都
vc為視窗新增一個陰影或者毛玻璃背景
看到迅雷啊qq啊都實現了視窗的周圍有一層毛邊的玻璃背景,使原本單調的背景變的好看多了,就想著怎麼做了,終於在codeproject上找到了一個外國老寫的WndShadow類的,他主要是通過setwindowlong來獲取到主視窗的訊息。如視窗移動,縮小,變大等,獲取訊息做相
swt為關閉視窗新增確認事件
shell.addShellListener(new ShellAdapter() { public void shellClosed(ShellEvent e) { MessageBox messagebox = new MessageBox(shell,
magento 為支付方式新增一個 最大金額和最小金額的限制
在相應支付方式的etc/system.xml檔案裡新增如下程式碼即可(不填數字即不限制) <min_order_total> <label>Minimum Order Total</label> <frontend_type>text