• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 24,  comments - 62,  trackbacks - 0

            Glade是針對GTK+工具箱與GNOME桌面開發環境的快速圖形界面開發工具.用Glade設計的用戶接口以XML的文件形式保存,然后根據需要由程序通過libglade庫文件來動態加載.因為使用了libglade庫,Glade XML文件能夠被C,C++,Java,Perl,Python,C#等等語言所支持.針對其他未涉及的語言的支持也是方便的.

            在網上可以見到某些關于Glade的教程,大都是關于Linux平臺和Glade 2的,因為原先Glade作為快速開發工具,集成代碼生成功能,生成C文件.所以常常有初學者對網上某些教程所提及的"generate"(生成代碼)功能表示迷惑,在新版本的Glade-3上找不到對應的功能.

            新版本的Glade-3是對原先Glade代碼的完全重寫.一個顯著的變化就是去除了代碼生成功能.這樣做是有原因的,即然代碼生成功能不被提倡使用,而是更鼓勵使用libglade功能.但是如果你真需要代碼生成功能的話,它還是可以做為插件來提供的.另一個顯著的不同是glade-3設計用來最大化使用GObject的自省機制(GObject introspection),來使外部工具箱和部件的控制,信號和屬性的集成更加容易.

            如果看過Say Hello to GTK+的話,可能感覺那樣的窗體程序太簡單了.那么現在讓我們借助Glade弄點兒復雜一點兒的界面吧.首先來瞧瞧Glade長什么樣,下圖就是Glade在windows下的界面.左邊的窗體的小部件選擇器,相當于調色板.中間是主菜單,右邊的是屬性窗體.

            glade_win

            現在開始創建一個類似于文本編輯器的圖形界面.按照上圖標注的順序,依次添加window部件,vertical box部件,menu bar部件,text view部件和Status部件.vertical box設置三行,它是用來進行界面布局,分割空間用,這是gtk+設計與傳統的windows UI設計很不同的地方.后三個部件是放置vertical box中的,最后設計完成圖形如下.保存取名為win.glade.如果你感興趣的話,可以用文件編輯器打開這個文件看看,正如所說的那樣,它是一個xml格式的文本文件.

            win

            現在我們設置相關的頭文件和庫文件,編輯一個glade.c文件,添加進以下的代碼,運行看看,會出現如上圖的對話框.雖然這個對話框什么都不干,但是通過Glade,我們能較為容易地設計界面,而不用通過gtk函數,一個一個將控件實現.

            #include <gtk/gtk.h>
            #include <glade/glade.h> int main(int argc, char* argv[]) { GladeXML *gxml; GtkWidget *window; gtk_init (&argc, &argv); gxml = glade_xml_new ("win.glade", NULL, NULL); window = glade_xml_get_widget (gxml, "hello"); g_object_unref (G_OBJECT (gxml)); gtk_widget_show (window); gtk_main (); return 0; }
            posted on 2008-03-27 20:49 len 閱讀(10208) 評論(8)  編輯 收藏 引用 所屬分類: 程序開發

            FeedBack:
            # re: Say Hello to Glade
            2008-07-22 00:25 | lyre
            glade 的資料似乎非常少啊,剛才按照這文章嘗試了一下,編譯也沒有出現錯誤,運行時有問題了

            test:11756): Gtk-CRITICAL **: gtk_widget_show_all: assertion `GTK_IS_WIDGET (widget)' failed

            搞不懂……  回復  更多評論
              
            # re: Say Hello to Glade
            2008-07-22 00:36 | lyre
            唔……原來是我沒有改窗口的名稱  回復  更多評論
              
            # re: Say Hello to Glade
            2008-09-18 12:08 | 斷了的貓
            @lyre
            apt-get install libglade-doc 阿.. 呵呵 資料很全的  回復  更多評論
              
            # re: Say Hello to Glade[未登錄]
            2009-03-11 10:29 | alex
            文件保存時選libglade  回復  更多評論
              
            # re: Say Hello to Glade
            2009-06-11 23:32 | yifei
            可是我的還是會出錯,  回復  更多評論
              
            # re: Say Hello to Glade
            2010-02-12 09:19 | hit
            gladetest.obj : error LNK2019: unresolved external symbol _glade_xml_get_widget referenced in function _main
            gladetest.obj : error LNK2019: unresolved external symbol _glade_xml_new referenced in function _main
            C:\Documents and Settings\sony\My Documents\Visual Studio 2005\Projects\gladetest\Debug\gladetest.exe : fatal error LNK1120: 2 unresolved externals
            Build log was saved at "file://c:\Documents and Settings\sony\My Documents\Visual Studio 2005\Projects\gladetest\gladetest\Debug\BuildLog.htm"
            gladetest - 3 error(s), 0 warning(s)
            ========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========  回復  更多評論
              
            # re: Say Hello to Glade
            2010-02-12 09:21 | hit
            添加了所有的LIb后仍然如此  回復  更多評論
              
            # re: Say Hello to Glade[未登錄]
            2014-06-05 18:18 | haha
            (test:20410): libglade-WARNING **: Expected <glade-interface>. Got <interface>.

            (test:20410): libglade-WARNING **: did not finish in PARSER_FINISH state

            (test:20410): libglade-CRITICAL **: glade_xml_get_widget: assertion `self != NULL' failed

            (test:20410): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

            (test:20410): Gtk-CRITICAL **: IA__gtk_widget_show: assertion `GTK_IS_WIDGET (widget)' failed
              回復  更多評論
              

            <2010年2月>
            31123456
            78910111213
            14151617181920
            21222324252627
            28123456
            78910111213

            常用鏈接

            留言簿(4)

            隨筆分類

            隨筆檔案

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲欧美国产日韩综合久久| 久久久久人妻一区二区三区| 久久青青草原精品影院| 久久97久久97精品免视看| 亚州日韩精品专区久久久| 亚洲精品乱码久久久久66| 18岁日韩内射颜射午夜久久成人| 日韩一区二区三区视频久久| 一本一本久久a久久综合精品蜜桃 一本一道久久综合狠狠老 | 亚洲综合精品香蕉久久网97| 亚洲欧美一级久久精品| 99久久超碰中文字幕伊人| 亚洲精品国精品久久99热| 嫩草影院久久国产精品| 亚洲精品乱码久久久久66| 久久精品免费大片国产大片| 欧美精品久久久久久久自慰| 三级片免费观看久久| 久久久精品一区二区三区| 久久精品国产亚洲av麻豆色欲| 亚洲国产视频久久| 国产免费久久久久久无码| 四虎国产精品免费久久久| 久久成人国产精品| 欧美一区二区三区久久综| 久久久久亚洲av成人网人人软件 | 久久精品国产免费一区| 一本色道久久99一综合| 久久中文字幕精品| 中文字幕无码久久精品青草| 久久精品国产精品亚洲人人| 99久久婷婷国产一区二区| 青青青青久久精品国产h| MM131亚洲国产美女久久| 国产亚洲精久久久久久无码| 日产精品久久久久久久性色| 久久亚洲中文字幕精品有坂深雪| 精品熟女少妇AV免费久久| 少妇人妻88久久中文字幕| 人妻精品久久久久中文字幕一冢本| 国产精品久久久久久久人人看|