GTK+中怎样对已存在widget添加信号?
比如我要对一个窗口添加一个信号,然后在其他回调函数中触发它。
主函数中:
window = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_new ("signal_error", G_TYPE_FROM_CLASS (G_OBJECT (window)), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0 ); g_signal_connect (G_OBJECT (window), "signal_error", G_CALLBACK (show_error), NULL); |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
g_signal_new ("signal_error", G_TYPE_FROM_CLASS (G_OBJECT (window)),
G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, 0, NULL, NULL,
g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0
);
这有问题。。。。。g_signal_new的第二个参数是 GType
G_TYPE_FROM_CLASS (G_OBJECT (window)) 你这是干什么? 看名字也知道错了
window是一个instance你用G_TYPE_FROM_CLASS肯定错了 应该用
G_TYPE_FROM_INSTANCE()
那样很麻烦啊,尤其是用C写……用其他方法绕过了……
继承GtkWindow写一个新的控件应该是没问题的.也许还有更简单的办法,没有尝试过了.
没人理,自己顶一下。