• <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>

            Onway

            我是一只菜菜菜菜鳥...
            posts - 61, comments - 56, trackbacks - 0, articles - 34

            gtk+筆記(1)

            Posted on 2011-11-22 11:47 Onway 閱讀(1447) 評論(0)  編輯 收藏 引用 所屬分類: 使用說明
            歷時五六個小時,又是百度谷歌,幫助手冊,入門教程什么一通查找,說是模塊其實也就一個文件不到兩百行代碼。
            比想象中要順利,也學到了不少。

            1,帶有滾動條的多行文本框
            只要gtk_scrolled_window_new生成一個滾動窗口,在其上加上textview控件即可gtk_container_add,特點是當textview足夠顯示的時候,滾動條不可見,否則自動產生(垂直和橫向),而且也隨著輸入一起下滾顯示。這個暫不知道怎么設置。
            GtkWidget *scroll = gtk_scrolled_window_new(NULL,NULL);
            GtkWidget *textview = gtk_text_view_new();
            gtk_container_add(GTK_CONTAINER(scroll),textview);

            textview總是要與一個textbuffer關聯:
            GtkTextBuffer *buffer = gtk_text_buffer_new(NULL);
            buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));


            2,控件焦點設置
            gtk_widget_grab_focus,當entry控件使用時,會選中控件內輸入。

            3,局部快捷鍵設置
            GtkAccelGroup *group = gtk_accel_group_new();快捷鍵組?
            gtk_window_add_accel_group(GTK_WINDOW(window),group);添加快捷鍵組到窗體
            gtk_widget_add_accelerator(butQuery,"clicked",group,GDK_KEY_Return,(GdkModifierType)0,GTK_ACCEL_VISIBLE);快捷鍵注冊,其實就是當快捷鍵按下的時候,為控件觸發一個信號
            (GdkModifierType)0為不使用修飾鍵

            4,從glade文件添加控件,該控件是已經生成了的,只需用個指針接受對象
            GtkBuilder *builder;
            builder = gtk_builder_new();
            gtk_builder_add_from_file(builder,"youdao.glade",NULL);
            window = GTK_WIDGET(gtk_builder_get_object(builder,"window"));
            。。。
            g_object_unref(G_OBJECT(builder));撤銷關聯?

            5,選項卡控件(稱為notebook控件)
            特點:notebook控件作為一個容器,每一個標簽頁用一個widget作為其標簽名,一個widget作為其標簽內容
            添加一個標簽頁:gtk_notebook_append_page
            注意:不能刪掉一個notebook控件的所有標簽頁(顯示的時候沒效果)
            標簽頁的序號(使用gtk_notebook_get_nth_page獲得):
            動態增減標簽頁的時候,標簽頁的序號似乎工作不正常。
            最后使用的辦法是,使用gtk_noteboo_prepend_page向前添加,再使用-1參數gtk_notebook_remove_page從后逐個刪掉以替換掉之前的標簽頁。
            應該有更好的方法吧?
            刪掉一個標簽頁的時候,使用gtk_widget_queue_draw(GTK_WIDGET(noteBook));重畫控件,不太明白。

            6,消息對話框(message dialog)
            int ret;
            GtkWidget *dialog;
            dialog = gtk_message_dialog_new(GTK_WINDOW(window),
            GTK_DIALOG_DESTROY_WITH_PARENT,
            GTK_MESSAGE_WARNING,
            GTK_BUTTONS_OK,
            "%s",msg);
            gtk_window_set_title(GTK_WINDOW(dialog),"Warning");
            ret = gtk_dialog_run(GTK_DIALOG(dialog));
            gtk_widget_destroy(dialog);
            特點:在gtk_dialog_run函數里堵塞,直到用戶關掉了對話框才返回,其返回值暫沒研究。


            明天就可以開始感覺最具難度的html解析模塊的設計編寫了。
            鍵盤昨晚吃了點八寶粥,有幾個鍵特別蛋疼的按了一天。
            2011-11-15

            7,關于.glade文件(2011-11-18)
            今天才發現原因.glade文件是程序運行的時候才載入的。那是一個XML文件。
            使用這個界面設計器還要裝上一個libglade2-0的庫。

            久久久久99精品成人片牛牛影视| 精品99久久aaa一级毛片| 性做久久久久久久久久久| 国产69精品久久久久观看软件| 午夜久久久久久禁播电影| 人妻中文久久久久| 人妻无码αv中文字幕久久| 久久丝袜精品中文字幕| 麻豆精品久久精品色综合| 一本久道久久综合狠狠爱| 久久精品国产精品亚洲人人 | 国产99久久久国产精免费| 久久精品国产久精国产果冻传媒| 91亚洲国产成人久久精品网址| 亚洲午夜久久久影院| 99久久做夜夜爱天天做精品| 亚洲精品无码久久久久sm| 国产精品熟女福利久久AV| 狠狠色婷婷久久综合频道日韩| 久久99国产精一区二区三区| 看久久久久久a级毛片| 久久激情五月丁香伊人| 丰满少妇高潮惨叫久久久| 香蕉久久影院| 99久久人妻无码精品系列| 久久精品国产AV一区二区三区 | 亚洲精品高清久久| 伊人久久大香线蕉av一区| 久久精品国产一区二区三区不卡 | 欧美激情精品久久久久久久九九九| 久久久久人妻一区精品 | 狠狠色丁香婷婷久久综合不卡| 久久久久久久久久久久久久| 青青久久精品国产免费看 | 久久这里只精品99re66| 波多野结衣久久一区二区| 亚洲国产精品综合久久网络| 一本色道久久综合狠狠躁篇| 久久国产成人午夜aⅴ影院| 久久激情亚洲精品无码?V| 国产精自产拍久久久久久蜜|