GTK,有关创建菜单的有关问题,请高手解答。(来者有分)
发布时间:2011-06-27 17:39:56 文章来源:www.iduyao.cn 采编人员:星星草
GTK,有关创建菜单的问题,请高手解答。(来者有分)
最近在学习GTK,但是在创建菜单的时候出了些问题。问题出在使用GtkItemFactoryEntry结构的地方。
我创建了一个如下的GtkItemFactoryEntry结构:
static GtkItemFactoryEntry menu_items[] ={
{"/文件(_F)", NULL, NULL, 0, "<Branch>"},
{"/文件(_F)/新建", NULL, on_menu_activate, "新建", "<StockItem>", GTK_STOCK_NEW},
{"/文件(_F)/打开", NULL, on_menu_activate, "打开", "<StockItem>", GTK_STOCK_OPEN},
{"/文件(_F)/保存", NULL, on_menu_activate, "保存", "<StockItem>", GTK_STOCK_SAVE},
{"/文件(_F)/另存为", NULL, on_menu_activate, "另存为", "<StockItem>", GTK_STOCK_SAVE_AS},
{"/文件(_F)/退出", NULL, on_menu_activate, "退出", "<StockItem>", GTK_STOCK_QUIT},
{"/编辑(_E)", NULL, NULL, 0, "<Branch>"},
{"/编辑(_E)/剪切", NULL, on_menu_activate, "剪切", "<StockItem>", GTK_STOCK_CUT},
{"/编辑(_E)/复制", NULL, on_menu_activate, "复制", "<StockItem>", GTK_STOCK_COPY},
{"/编辑(_E)/粘贴", NULL, on_menu_activate, "粘贴", "<StockItem>", GTK_STOCK_PASTE},
{"/编辑(_E)/查找", NULL, on_menu_activate, "查找", "<StockItem>", GTK_STOCK_FIND},
{"/帮助(_H)", NULL, NULL, 0, "<LastBranch>"},
{"/帮助(_H)/关于...", NULL, on_menu_activate, "关于", "<StockItem>", NULL}
};
程序是抄的教材上的,并没有错误,别人的也能通过。但是放在我的电脑上面就出错了。
编译的时候出现了以下错误:
error: initializer element is not constant
error: (near initialization for ‘menu_items[1].callback_action’)
在网上查了一些资料,有的GtkItemFactoryEntry结构是含有5项,有的是含有6项。
有的GtkItemFactoryEntry的结构如下:
struct _GtkItemFactoryEntry
{
gchar *path; (1)
gchar *accelerator; (2)
GtkItemFactoryCallback callback; (3)
guint callback_action; (4)
/* possible values:
* NULL -> "<Item>"
* "" -> "<Item>"
* "<Title>" -> create a title item
* "<Item>" -> create a simple item
* "<ImageItem>" -> create an item holding an image
* "<StockItem>" -> create an item holding a stock image
* "<CheckItem>" -> create a check item
* "<ToggleItem>" -> create a toggle item
* "<RadioItem>" -> create a radio item
* <path> -> path of a radio item to link against
* "<Separator>" -> create a separator
* "<Tearoff>" -> create a tearoff separator
* "<Branch>" -> create an item to hold sub items
* "<LastBranch>" -> create a right justified item to hold sub items
*/
gchar *item_type; (5)
/* Extra data for some item types:
* ImageItem -> pointer to inlined pixbuf stream
* StockItem -> name of stock item
*/
gconstpointer extra_data; (6)
};
还有一种是5项的:
struct GtkItemFactoryEntry
{
gchar *path;
gchar *accelerator;
GtkItemFactoryCallback callback;
guint callback_action;
gchar *item_type;
};
然后我把上面的程序按照5项的来写后就通过了。不过现在更迷惑了,到底哪个是对的呢,应该是都正确,但是我为什么我的这个用第一种结构就会出错呢,还请高手指点。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
在ubuntu下怎么播放swf 和csf 文件?
虽然,firefox 可以播放swf文件,但是没有托动条。
在ubuntu下怎么播放swf和 csf文件?
哪个高...
-
2011年最新录制的Linux(CentOS)视频教程
电驴地址:http://www.verycd.com/topics/2875873/
------解决方案--------------------
l...
-
求《操作系统:设计与实现》pdf
A.S.Tanenbaum写的《操作系统设计与实现》,有上下册,谁有的,帮个忙,非常感谢。qifeifei@live.cn
----...
-
linux用户态内存的物理地址问题?
小弟我看linux内存管理一段时间了。有一个问题一直不解。 linux用户态进程使用0—3G的线性地址...
-
安装linux chm阅读器 xchm
[root@localhost ~]# yum install chmlib
[root@localhost ~]# yum install wxGTK
[root@localhost ~]...
-
都说Linux是开源的,在哪可以找到Linux的源码?
都说Linux是开源的,在哪可以找到Linux的源码?
烦请各位高手指点一二,谢谢。
------解决...
-
求解2个概念,书上没找到,急用,谢谢大家
1.Unix中磁盘文件和设备文件的异同点。
2.Unix中原子和竞争的概念。
求正解,因为考试可能会考...
-
有人在fedora 10下安装 oracle database 11g,没有呀?提供个安装步骤
有人在fedora 10下安装 oracle database 11g,没有呀?提供个安装...
-
用什么学习函数库?
我们现在学习LINUX 编程,读程序时候有很多头文件,代码中有许多库函数。
#include <sys/types.h>
#include <wait....
-
linux下c语言写的shell,花了不少时间写得 有兴趣的可以看看,本人linux初学者
http://download.csdn.net/source/2799757
------解...