亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 4979 | 回復(fù): 4
打印 上一主題 下一主題

GTK+中怎樣對已存在widget添加信號? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-02-23 21:12 |只看該作者 |倒序瀏覽
比如我要對一個窗口添加一個信號,然后在其他回調(diào)函數(shù)中觸發(fā)它。
主函數(shù)中:
    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);

回調(diào)函數(shù)中:
    g_signal_emit_by_name (G_OBJECT (window), "signal_error", NULL);

其中window是全局的。
可是運(yùn)行到信號觸發(fā)時沒有觸發(fā),卻出現(xiàn)警告和斷言:
GLib-GObject-CRITICAL **: g_signal_newv: assertion `G_TYPE_IS_INSTANTIATABLE (itype) || G_TYPE_IS_INTERFACE (itype)' failed
GLib-GObject-WARNING **: gsignal.c:2267: signal `signal_error' is invalid for instance `0x18c0000'
GLib-GObject-WARNING **: invalid (NULL) pointer instance
GLib-GObject-CRITICAL **: g_signal_emit_by_name: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
GLib-GObject-WARNING **: invalid (NULL) pointer instance
GLib-GObject-CRITICAL **: g_signal_emit_by_name: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed


網(wǎng)上查到的都是過時的代碼,或者是自建的widget類型,怎樣往已存在的widget中添加信號呢?

論壇徽章:
0
2 [報告]
發(fā)表于 2009-02-26 18:57 |只看該作者
沒人理,自己頂一下。

論壇徽章:
0
3 [報告]
發(fā)表于 2009-03-01 00:46 |只看該作者
繼承GtkWindow寫一個新的控件應(yīng)該是沒問題的.也許還有更簡單的辦法,沒有嘗試過了.

論壇徽章:
0
4 [報告]
發(fā)表于 2009-03-01 12:49 |只看該作者
原帖由 openxing 于 2009-3-1 00:46 發(fā)表
繼承GtkWindow寫一個新的控件應(yīng)該是沒問題的.也許還有更簡單的辦法,沒有嘗試過了.

那樣很麻煩啊,尤其是用C寫……用其他方法繞過了……

論壇徽章:
0
5 [報告]
發(fā)表于 2009-08-09 10:40 |只看該作者
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的第二個參數(shù)是 GType  
G_TYPE_FROM_CLASS (G_OBJECT (window))  你這是干什么?  看名字也知道錯了
window是一個instance你用G_TYPE_FROM_CLASS肯定錯了 應(yīng)該用
G_TYPE_FROM_INSTANCE()
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP