GTK+中怎样对已存在widget添加信号?

发布于 2022-08-09 07:24:36 字数 1993 浏览 5 评论 4

比如我要对一个窗口添加一个信号,然后在其他回调函数中触发它。
主函数中:

    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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

迷乱花海 2022-08-21 01:24:31

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()

云胡 2022-08-21 00:39:50

原帖由 openxing 于 2009-3-1 00:46 发表
继承GtkWindow写一个新的控件应该是没问题的.也许还有更简单的办法,没有尝试过了.

那样很麻烦啊,尤其是用C写……用其他方法绕过了……

摇划花蜜的午后 2022-08-20 23:20:53

继承GtkWindow写一个新的控件应该是没问题的.也许还有更简单的办法,没有尝试过了.

入画浅相思 2022-08-20 21:28:34

没人理,自己顶一下。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文