• <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是針對(duì)GTK+工具箱與GNOME桌面開(kāi)發(fā)環(huán)境的快速圖形界面開(kāi)發(fā)工具.用Glade設(shè)計(jì)的用戶接口以XML的文件形式保存,然后根據(jù)需要由程序通過(guò)libglade庫(kù)文件來(lái)動(dòng)態(tài)加載.因?yàn)槭褂昧薼ibglade庫(kù),Glade XML文件能夠被C,C++,Java,Perl,Python,C#等等語(yǔ)言所支持.針對(duì)其他未涉及的語(yǔ)言的支持也是方便的.

            在網(wǎng)上可以見(jiàn)到某些關(guān)于Glade的教程,大都是關(guān)于Linux平臺(tái)和Glade 2的,因?yàn)樵菺lade作為快速開(kāi)發(fā)工具,集成代碼生成功能,生成C文件.所以常常有初學(xué)者對(duì)網(wǎng)上某些教程所提及的"generate"(生成代碼)功能表示迷惑,在新版本的Glade-3上找不到對(duì)應(yīng)的功能.

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

            如果看過(guò)Say Hello to GTK+的話,可能感覺(jué)那樣的窗體程序太簡(jiǎn)單了.那么現(xiàn)在讓我們借助Glade弄點(diǎn)兒復(fù)雜一點(diǎn)兒的界面吧.首先來(lái)瞧瞧Glade長(zhǎng)什么樣,下圖就是Glade在windows下的界面.左邊的窗體的小部件選擇器,相當(dāng)于調(diào)色板.中間是主菜單,右邊的是屬性窗體.

            glade_win

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

            win

            現(xiàn)在我們?cè)O(shè)置相關(guān)的頭文件和庫(kù)文件,編輯一個(gè)glade.c文件,添加進(jìn)以下的代碼,運(yùn)行看看,會(huì)出現(xiàn)如上圖的對(duì)話框.雖然這個(gè)對(duì)話框什么都不干,但是通過(guò)Glade,我們能較為容易地設(shè)計(jì)界面,而不用通過(guò)gtk函數(shù),一個(gè)一個(gè)將控件實(shí)現(xiàn).

            #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 閱讀(10206) 評(píng)論(8)  編輯 收藏 引用 所屬分類: 程序開(kāi)發(fā)

            FeedBack:
            # re: Say Hello to Glade
            2008-07-22 00:25 | lyre
            glade 的資料似乎非常少啊,剛才按照這文章嘗試了一下,編譯也沒(méi)有出現(xiàn)錯(cuò)誤,運(yùn)行時(shí)有問(wèn)題了

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

            搞不懂……  回復(fù)  更多評(píng)論
              
            # re: Say Hello to Glade
            2008-07-22 00:36 | lyre
            唔……原來(lái)是我沒(méi)有改窗口的名稱  回復(fù)  更多評(píng)論
              
            # re: Say Hello to Glade
            2008-09-18 12:08 | 斷了的貓
            @lyre
            apt-get install libglade-doc 阿.. 呵呵 資料很全的  回復(fù)  更多評(píng)論
              
            # re: Say Hello to Glade[未登錄](méi)
            2009-03-11 10:29 | alex
            文件保存時(shí)選libglade  回復(fù)  更多評(píng)論
              
            # re: Say Hello to Glade
            2009-06-11 23:32 | yifei
            可是我的還是會(huì)出錯(cuò),  回復(fù)  更多評(píng)論
              
            # 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 ==========  回復(fù)  更多評(píng)論
              
            # re: Say Hello to Glade
            2010-02-12 09:21 | hit
            添加了所有的LIb后仍然如此  回復(fù)  更多評(píng)論
              
            # re: Say Hello to Glade[未登錄](méi)
            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
              回復(fù)  更多評(píng)論
              

            <2008年3月>
            2425262728291
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            常用鏈接

            留言簿(4)

            隨筆分類

            隨筆檔案

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            国产精品久久成人影院| 久久婷婷人人澡人人| 综合人妻久久一区二区精品| 精品久久久久久中文字幕大豆网| 色欲av伊人久久大香线蕉影院| 热re99久久6国产精品免费| 久久777国产线看观看精品| 老司机午夜网站国内精品久久久久久久久 | 久久精品综合网| 人妻无码αv中文字幕久久| 久久精品男人影院| 亚洲国产精品一区二区久久hs| 嫩草影院久久99| 亚洲国产精品久久电影欧美 | 国内精品久久久久久久久| 国产精品久久久久蜜芽| 日本福利片国产午夜久久| 久久免费视频6| 97精品伊人久久久大香线蕉 | 精品国产日韩久久亚洲| 久久香蕉综合色一综合色88| 99精品国产综合久久久久五月天| 亚洲狠狠综合久久| 91精品国产综合久久婷婷| AV无码久久久久不卡蜜桃| 99久久夜色精品国产网站| 97精品伊人久久大香线蕉app | 伊人久久免费视频| 日产精品久久久久久久性色| 久久亚洲精品国产精品婷婷| 久久93精品国产91久久综合| 久久免费视频观看| 香蕉久久一区二区不卡无毒影院| 久久久久久久人妻无码中文字幕爆| 亚洲午夜久久久影院| 亚洲精品无码久久一线| 亚洲午夜久久久影院伊人| 久久人人爽人人爽人人片AV高清 | 国产精品99久久久精品无码| 亚洲欧美精品一区久久中文字幕| 亚洲国产成人乱码精品女人久久久不卡 |