鱼C论坛

 找回密码
 立即注册
查看: 2732|回复: 1

[技术交流] C语言GUI程序设计-GTK图文系列-工具栏

[复制链接]
发表于 2014-11-12 21:10:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这一讲来讲解GTK中的工具栏GtkToolBar

先来看下效果:
gtk_toolbar.png


例程:
  1. #include <gtk/gtk.h>

  2. void open_click(GtkToolButton *toolbutton,gpointer user_data)
  3. {
  4.     g_print("open\n");
  5. }
  6. int main(int argc,char *argv[ ])
  7. {
  8.     GtkWidget *window;
  9.     GtkWidget *toolbar;
  10.     GtkToolItem *tool_item1,*tool_item2,*tool_item_separtor;

  11.     gtk_init(&argc,&argv);
  12.     window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
  13.     gtk_window_set_title(GTK_WINDOW(window),"hello fishc - GtkToolBar");

  14.     toolbar = gtk_toolbar_new();
  15.     tool_item1 = gtk_tool_button_new_from_stock(GTK_STOCK_OPEN);
  16.     tool_item2 = gtk_tool_button_new_from_stock(GTK_STOCK_COPY);
  17.     g_signal_connect(GTK_WIDGET(tool_item1),"clicked",open_click,NULL);
  18.     tool_item_separtor = gtk_separator_tool_item_new();

  19.     gtk_toolbar_insert(toolbar,tool_item1,0);
  20.     gtk_toolbar_insert(toolbar,tool_item_separtor,1);
  21.     gtk_toolbar_insert(toolbar,tool_item2,2);

  22.     gtk_container_add(GTK_CONTAINER(window), toolbar);
  23.     gtk_widget_show_all(window);
  24.     gtk_main();
  25. }
复制代码

工具栏的使用比较简单,主要是新建一个GtkToolBar,然后新建几个GtkToolItem添加进去即可。
GtkToolBar类似于上一节的GtkMenuBar,都是用来承载子项的栏。

主要用到的函数:
gtk_tool_button_new_with_stock
这个函数是用来新建一个GtkToolItem的,这里的item类型为button,参数为stockid,stockid为GTK中定义的一系列字符串常量,其功能是用来标识一些预定义的常用图标。
例如GTK_STOCK_ADD就是这个图标: gtk_stock_add.png ,这样初始化工具栏按钮就显示了预置的图标了。

接下来我们可以添加另一个常用的GtkToolItem,它就是分隔符(GtkSeparatorToolItem),如上图中的那条竖线。

最后注册GtkToolItem的clicked信号获取点击通知,就可以处理工具栏按钮的点击操作了。

这个简单的部件就说到这里,下一讲讲解GTK中的显示部件。



本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-11-12 21:32:21 | 显示全部楼层
支持楼主!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-4 01:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表