当前位置: 技术问答>linux和unix
关于libglade调用glade3编辑的xml之实例,请大家帮我分析分析。(代码整理版)
来源: 互联网 发布时间:2016-05-16
本文导语: 在glade3控件属性的信号一栏有个用户数据,从字面看,应当是对应回调函数的gpointer user_data. 但是情况似乎不是这样。 xml结构简单,为不影响阅读原文最后附上: hello(window) layout1 username(entry) p...
在glade3控件属性的信号一栏有个用户数据,从字面看,应当是对应回调函数的gpointer user_data.
但是情况似乎不是这样。
xml结构简单,为不影响阅读原文最后附上:
hello(window)
layout1
username(entry)
password(entry)
buttonOK(button)
程序采用cpp,网上常见的sayHelloToGlade为原型,为不影响阅读原文最后附上。
下面是修改gui.glade的运行对比。
button.clicked用户数据留空
Hello 123
your password 456
widget==buttonOK?1
user_data==buttonOK?0
button.clicked用户数据填hello
Hello 123
your password 456
widget==buttonOK?0
user_data==buttonOK?1
从运行结果分析,libglade自动调用的时候,两个参数是变化的。
xml中没有设定"用户数据"时,widget=事件产生控件, user_data=NULL
xml设定了"用户数据"时,widget=设定的控件对象,user_data=事件产生控件
请大家帮我看看是不是如此,另外请教,事件函数自动绑定的话,有没有更好的控件访问方法。
==gui.glade==
==main.cpp==
但是情况似乎不是这样。
xml结构简单,为不影响阅读原文最后附上:
hello(window)
layout1
username(entry)
password(entry)
buttonOK(button)
程序采用cpp,网上常见的sayHelloToGlade为原型,为不影响阅读原文最后附上。
下面是修改gui.glade的运行对比。
button.clicked用户数据留空
Hello 123
your password 456
widget==buttonOK?1
user_data==buttonOK?0
button.clicked用户数据填hello
Hello 123
your password 456
widget==buttonOK?0
user_data==buttonOK?1
从运行结果分析,libglade自动调用的时候,两个参数是变化的。
xml中没有设定"用户数据"时,widget=事件产生控件, user_data=NULL
xml设定了"用户数据"时,widget=设定的控件对象,user_data=事件产生控件
请大家帮我看看是不是如此,另外请教,事件函数自动绑定的话,有没有更好的控件访问方法。
==gui.glade==
GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
GTK_WIN_POS_MOUSE
True
100
True
True
False
456
73
110
100
True
True
123
72
77
100
20
True
你好,请输入
29
26
60
22
True
用户名
5
77
60
22
True
密码
5
110
95
41
True
True
True
OK
0
51
153
==main.cpp==
#include
#include
#include
GladeXML gxml;
extern "C" {
void on_buttonOK_clicked(GtkWidget *widget, gpointer user_data){
GladeXML * xml_hello=glade_get_widget_tree(widget);
GtkWidget * buttonOK=glade_xml_get_widget(xml_hello,"buttonOK");
GtkEntry * text_username=(GtkEntry *)glade_xml_get_widget(&gxml,"username"); //用全局xml访问
GtkEntry * text_password=(GtkEntry *)glade_xml_get_widget(xml_hello,"password");//用对象返回的xml
const gchar * username=gtk_entry_get_text(text_username);
const gchar * password=gtk_entry_get_text(text_password);
std::cout
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!