久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3793|回復: 0
收起左側

GTK窗口布局管理-Handle Box和Notebook[原]

[復制鏈接]
ID:72519 發表于 2015-1-23 19:57 | 顯示全部樓層 |閱讀模式
       Handle Box這容器跟上一篇博文中所介紹到Exapnder一樣,,只允許有一個子控件在上面。Handle Box是一個可以拿下來到控件,可以浮動到控件。咦,這功能好熟悉哦,呵呵,你想得不錯,在windows中,窗口的工具欄里面的元素是可以用鼠標拖動的。轉入正題,Handle Box控件能用來制作一些浮動菜單。下面是一簡單實例:
/**********************************
**
**FILE:         handleboxgtk+.c
**DATE:         20090612 17:38
**AUTHOR:       LAMMY
**VERSION:      0.0
**
**********************************/
#include <gtk/gtk.h>

int main(int argc, char *argv[])
{
        GtkWidget *pHwindow, *pHhandlebox, *pHlabel;
        
        gtk_init(&argc, &argv);
        pHwindow  = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(pHwindow), "handleboxgtk+");
        gtk_widget_set_size_request(pHwindow, 200, 150);
        gtk_container_set_border_width(GTK_CONTAINER(pHwindow), 10);
        
        pHhandlebox = gtk_handle_box_new();
        pHlabel = gtk_label_new("Label!");
        
        gtk_handle_box_set_shadow_type(GTK_HANDLE_BOX(pHhandlebox), GTK_SHADOW_ETCHED_OUT);
        gtk_handle_box_set_handle_position(GTK_HANDLE_BOX(pHhandlebox), GTK_POS_BOTTOM);
        gtk_handle_box_set_snap_edge(GTK_HANDLE_BOX(pHhandlebox), GTK_POS_RIGHT);
        
        gtk_container_add(GTK_CONTAINER(pHhandlebox), pHlabel);
        gtk_container_add(GTK_CONTAINER(pHwindow), pHhandlebox);
        
        gtk_widget_show_all(pHwindow);
        gtk_main();
        
        return 0;
}Notebook看字意就能明白它是用來做筆記本,故稱為筆記本控件,是是互相重疊的頁面集合,每一頁都包含不同的信息,且一次只有一個頁面是可見的。在GUI中,如果要顯示比較大的相似信息量時,使用這控件是一個很好的方法。下面是一簡單實例,例子后面簡單介紹下這個控件所涉及到的函數。
1 /**********************************
  2 **
  3 **FILE:         handleboxgtk+.c
  4 **DATE:         20090615 24:38
  5 **AUTHOR:       LAMMY
  6 **VERSION:      0.0
  7 **
  8 **********************************/
  9 #include <gtk/gtk.h>
10 #include <glib/gprintf.h>//c lib fuc
11
12 #if 0
13 gboolean _CallBack_ChangeTab(GtkWidget *pHwidget, GtkNotebook *pHnotebook)
14 {
15         gtk_notebook_next_page(pHnotebook);
16         
17         return 0;
18 }
19 #endif
20
21 int main(int argc, char *argv[])
22 {
23         GtkWidget *pHwindow, *pHlable[3], *pHchild[3], *pHnotebook;
24         guint32 temp = 0;
25         gchar chBufer[20];
26
27         gtk_init(&argc, &argv);
28
29         pHwindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
30         gtk_window_set_title(GTK_WINDOW(pHwindow), "notebooksgtk+");
31         gtk_widget_set_size_request(pHwindow, 250,200);
32         gtk_container_set_border_width(GTK_CONTAINER(pHwindow), 10);
33
34         pHnotebook = gtk_notebook_new();
35
36         for(temp = 0; temp < 3; temp++)
37         {
38                 g_sprintf(chBufer, "%s%d","label",temp);
39                 pHlable[temp] = gtk_label_new(chBufer);
40                 pHchild[temp] = gtk_label_new(chBufer);
41 //              g_signal_connect(G_OBJECT(pHchild[temp]), "clicked", G_CALLBACK(_CallBack_ChangeTab), pHnotebook);
42                 gtk_notebook_append_page(GTK_NOTEBOOK(pHnotebook), pHchild[temp], pHlable[temp]);
43         }
44
45         gtk_notebook_set_tab_pos(GTK_NOTEBOOK(pHnotebook), GTK_POS_BOTTOM);
46         gtk_container_add(GTK_CONTAINER(pHwindow), pHnotebook);
47
48         gtk_widget_show_all(pHwindow);
49         gtk_main();
50
51         return 0;
52 }
1. 創建一個新的筆記本控件函數:
GtkWidget *gtk_notebook_new( void );以上函數返回一個新的Notebook的句柄。創建完后,我們要給Notebook添加頁標簽,
2. 創建頁標簽函數:
int                gtk_notebook_append_page            (GtkNotebook *notebook,
                                                         GtkWidget *child,
                                                         GtkWidget *tab_label);*notebook為要添加頁標簽的Notebook的句柄,child是放在筆記本頁面里的子構件,tab_label是要添加的頁面的標簽,child跟table_label需要另外創建,當然child跟table_label可以為其它容器。
3. 設置頁標簽的位置[有右,左,上,下]
void                gtk_notebook_set_tab_pos            (GtkNotebook *notebook,
                                                         GtkPositionType pos);pos是一個枚舉型參數,有 GTK_POS_LEFT,GTK_POS_RIGHT,GTK_POS_TOP ,GTK_POS_BOTTOM。其中GTK_POS_TOP是缺省值。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久免费观看 | 国产精品一区二区三区在线 | 欧洲妇女成人淫片aaa视频 | 国产日韩欧美电影 | 国产精品一区在线观看 | 国产日韩一区二区 | 国产精品美女久久久 | 伊人久久在线 | 国产亚洲精品综合一区 | 精精久久 | 国产二区视频 | 999精品在线 | 精品久久久一区二区 | 国产午夜精品一区二区 | 99re在线视频| 亚洲在线一区二区 | av色站| 国产传媒毛片精品视频第一次 | 精品国产伦一区二区三区观看方式 | 亚洲国产情侣自拍 | 国产精品一区二区av | 久久er精品 | 极情综合网 | 欧区一欧区二欧区三免费 | 综合久久综合久久 | 亚洲精久久久 | 日韩av免费在线电影 | 日韩欧美亚洲综合 | 日韩一区二区三区av | 亚洲精品视频免费观看 | 在线视频日韩精品 | 99精品一区二区 | 97色在线观看免费视频 | 国产视频一视频二 | 午夜精品一区二区三区在线观看 | 久久成人免费视频 | 黄色成人免费看 | 精品国产乱码久久久久久88av | 欧美日韩国产不卡 | 欧美日韩不卡合集视频 | 国产精品亚洲成在人线 |