8月 07, 2013

Linux:使用gtkmm、glade3開發C++ 圖型介面I程式(一)簡介

一、開發環境與版本

作業系統:ubuntu 13.04
GTK+圖形介面函式庫的C++介面:gtkmm 3.0
GTK+視覺化使用者界面設計工具:glade 3.14.2
C++編譯器:g++ 4.7.3

二、使用glade建立GTK+圖型介面
(一)構成圖型界面
1、基本視窗(top level window)。
2、容器(Container),如VBox、HBox...。
3、視窗元件(Widget),如button、label...。
4、設定視窗元件屬性,如偵測Clicked事件,自定信號處理。

(二)存檔,新版産生xml格式設計檔( .glade),廣泛提供其它程式語言解析、建立變數與設定處理信號。

(舊版程式則是針對C、C++、Ada95、Perl等程式語言依設計圖形界面産生原始碼,再與主程式一起編譯為執行檔,以C為例,産生下列原始碼:
1、Interface Create Functions:interface.c、interface.h。
2、Signal Handler & Callback Functions:callback.c、callback.h。
3、Support fufunctions:support.c、support.h。)

(三)預覽圖形界面

三、編譯圖型介面程式
(一)建立專案資料夾(Project Folder),放置三個檔案:
1、標頭檔(.h Header File):定義類別(Class)等項目。
(1)引用gtkmm.h。
(2)成員變數(Member Variable)、成員函數(Member Function)及其它類別,此外,需定義構成圖形介面並與信號處理相關的的小元件(Widget),如按鈕(Button)、標籤(Label)等。
(3)設定圖形介面的應用程式介面(API)Gtk::Builder,編譯時載入XML格式檔。
(4)宣告建構子(Constructor)及解構子(Destructor)(解構子可省略),此時僅宣告存取層級(Public)(保留於程式碼原始檔處,配合Builder參考glade設定檔,實作圖形介面(Implementation))。
(5)信號處理(Signal Handlers),定義處理圖形界面小元件觸發事件(Event)。

2、根據標頭檔撰寫的程式原始檔(.cc or .cpp Source File):

3、圖形介面格式檔(.glade):經由Glade設計儲存的XML格式檔。





(二)在文字終端下達指令編譯(粉色字為固定指令;白色字體為原始碼檔,依序為主程式、界面程式及執行檔)。

   g++ xmain.cpp xglade.cpp -o xmain  `pkg-config gtkmm-3.0 --cflags --libs`


沒有留言:

張貼留言