通過
libglade
函式庫連線
glade
專案檔案至少包含兩個步驟,這些工作必須在
gtk+
庫初始化後,且沒有進入
gtk+
主迴圈時完成。步驟如下:(1
)建立gladexml
物件。gladexml
物件是用於動態載入
xml格式使用者介面的型別,可使用
glade_xml_new()
函式建立。它的一般形式為:
gladexml
物件名;
物件名= glade_xml_new(const char
*fname,
const char
*root,
const char
*domain);
其中,fname
引數為glade
專案檔案的路徑和名稱。
root
引數為專案檔案中頂層構件節點,
null
表示使用
glade
專案檔案中定義的所有構件。如果希望
gladexml
物件只代表乙個窗體構件和窗體內的子構件,那麼
root
引數可設定為該窗體構件在
glade
專案中定義的名稱。
domain
引數為翻譯檔案的名稱,
null
為預設。(2
)獲得介面構件。可從有效的
gladexml
物件中獲得介面構件,然後對其進行操作。至少要獲得頂層窗體構件,然後使用
gtk+
函式將其顯示出來。
glade_xml_get_widget()
函式用於獲得介面構件,它的一般形式為:
gtkwidget
*glade_xml_get_widget(gladexml
*self,
const char
*name);
self
引數為gladexml
物件的名稱,
name
引數為glade
專案中介面構件的名稱。函式返回值是
gtkwidget
物件。(
3)連線訊號。在
glade
中定義了訊號後,可使用
glade_xml_signal_autoconnect()
函式將這些訊號全部連線到
c語言**中。它的一般形式為:
void glade_xml_signal_autoconnect(gladexml
*self);
下面用乙個例子說明
libglade
函式庫的基本操作方法,首先在
glade
裡建立乙個名為
ui.glade
的專案檔案。然後在專案檔案中新增乙個窗體構件,並在其中裝入乙個縱向組裝盒、乙個標籤構件和乙個按鈕構件。將窗體命名為
mainwindow
,標籤命名為
label
。在「公共」選項卡內將按鈕的「編輯型別」屬性設為「庫存」,將「庫存按鈕」屬性設為「退出(
q)」,如圖
26.43
所示。
圖26.43
乙個簡單的
glade專案
然後為窗體構件連線訊號。選擇窗體,單擊「訊號」選項卡。找到訊號列表中
gtkwidget
項,單擊左側展開器,展開
gtkwidget
類中定義的訊號。選擇
delete-event
訊號,為其新增**函式
gtk_main_quit
,如圖26.44
所示。 圖
26.44
為窗體連線訊號
選擇按鈕構件,選擇「訊號」選項卡。找到訊號列表中
gtkbutton
項,單擊左側展開器,展開
gtkwidget
類中定義的訊號。選擇
clicked
訊號,為其新增**函式
gtk_main_quit
。儲存glade
專案檔案。
在上述glade
專案檔案同乙個目錄中建立乙個
c語言源**檔案,可以使用任意檔名。編輯該檔案,寫入如下**:
#include
#include
#include //
包含libglade
函式庫int main(int argc, char
*argv)
在編譯引數中加入編譯引數「
`pkg-config --cflags --libs glib-2.0 gtk+-2.0 libglade-2.0`
」,編譯該程式。編譯成功後執行程式,如圖
26.45
所示。程式中使用
glade_xml_new()
函式讀取
glade
專案檔案
ui.glade
,建立了乙個
gladexml
物件。然後通過
glade_xml_get_widget()
函式獲得了
glade
專案中的
window
和label
構件。程式執行時,修改了標籤
label
的字串,並使用
gtk_widget_show_ all()
函式將窗體構件
window
內的所有構件顯示
出來。glade
專案中為
window
和button
構件所連線的訊號在執行
glade_xml_signal_auto- connect()
函式後即可被程式所使用。所以單擊窗體的關閉按鈕,或者按下「退出」按鈕時,將呼叫
gtk_main_quit()
函式結束程式。
%
注意:通過c
語言源**檔案編譯的可執行檔案與
glade
專案檔案是分離的,如果刪除了
glade
專案檔案或改變其路徑,那麼可執行檔案也無法啟**形介面,並且造成執行錯誤。如果在
glade
中修改了專案檔案,只要不影響可執行檔案的呼叫,那麼無需重新修改和編譯源**。例如在
glade
中只該變了窗體構件的標題屬性,再次執行可執行檔案時,將顯示新修改的窗體標題。
函式庫檔案
乙個很簡單的問題除錯了好久,不過還算有收穫。現總結一下 1.vs2008中 math.h 標頭檔案中沒有定義m pi,如果程式確實要用m pi則需自己定義。define m pi 3.14159265358979323846 2.如果程式中自己定義的函式比較多,為了除錯方便使用方便,可以將這些函式都...
標準函式庫
1 rand與srand函式產生偽隨機數 cpp view plain copy print?intrand void void srand unsigned intseed rand返回乙個範圍在0和rand max之間的偽隨機數,為了避免程式每次執行時獲得相同的隨機數序列,可以使用srand函式...
tf 函式庫與np 函式庫的轉換
前言 在對演算法模型進行部署的時候,往往需要做一些工作。以xilinx開發板部署tf框架模型為例,首先需要對訓練好的ckpt模型進行freeze得到.pb模型,之後,對其進行量化 編譯生成elf檔案,然後在板卡上通過main.cc函式呼叫pb模型的輸入 輸出節點對網路模型進行計算,注意這裡的計算分為...