我們正在編寫使用GTK診斷工具。你應該看自己的窗口中的不同項目的幾個屬性。所以你應該能夠打開幾個平等的窗口,每個窗口都附加到一個特定的對象上。例如,當點擊一個按鈕時,調用適當的GTK回調。但是,由於所有的窗戶都是平等的,所以沒有自然的方法來查看哪個對象應該改變。我們怎樣才能把每個窗口映射到它的對象上? 現在我們使用的地圖,從GTK窗口對象的映射,但給人的感覺更像一個黑客。我們能否以更優雅的方式交出關於物體的信息?如何映射一個GTK窗口數據
1
A
回答
2
GtkWindow
是GObject
間接子類,所以你可以使用的功能g_object_set
和g_object_get
(和g_object_set_data
等)的家庭。
0
我上面尋找一個解決方案中提到的球隊之一。這是我到目前爲止的工作:我創建一個Gvalue對象,並且想把它添加到GTKWindow window
。
int pid = 12345;
GValue val = G_VALUE_INIT;
g_value_init (&val, G_TYPE_INT);
g_value_set_int (&val, pid);
g_object_set (G_OBJECT(window), "pID", &val, NULL); //add to GTKWindow
當按下該窗口中的下列signalfunction使用按鈕:
extern "C" G_MODULE_EXPORT void onButtonStepClicked(GtkObject* caller, gpointer data){
GValue _pid;
GtkWidget* window = gtk_widget_get_toplevel (GTK_WIDGET(caller));
g_object_get_property(G_OBJECT(window), "processID", &_pid);
cout << (int)g_value_get_int(&pID) << endl;
}
但現在我得到警告我的終端:
的GLib,GObject的-WARNING **:g_object_set_valist :對象類GtkWindow' has no property named
pID的」
所以我GOOGLE了一段時間,發現了一個例子,其中我必須首先安裝這個屬性的一類。這是有道理的,還是我錯過了這裏的東西?
相關問題
- 1. 如何刪除一個GTK窗口
- 2. 如何將窗口映射到3D
- 3. GTK/GDK如何找出一個窗口是否被另一個窗口覆蓋?
- 4. 如何關閉Gtk#窗口
- 5. XCB:窗口在映射一次後不會取消映射
- 6. 讓一個窗口顯示在GTK +
- 7. 如何在一個窗口中獲取多個面板 - GTK +
- 8. 如何使用自動映射器映射一個數據集與多個表
- 9. Gtk ::窗口set_visible結果在一個空白窗口
- 10. 在同一個程序中合併SDL窗口和GTK +窗口
- 11. 在C#中打開GTK窗口,返回數據並關閉窗口,然後打開另一個窗口?
- 12. 如何映射數據庫?
- 13. 如何在py-gtk窗口中顯示連續數據?
- 14. 如何創建一個窗口,改變輸入文本GTK
- 15. 如何在gtk3中獲得一個活動的gtk窗口?
- 16. GTK ++窗口混淆
- 17. gtk#窗口線程
- 18. GTK窗口動畫?
- 19. GTK窗口提示
- 20. 關閉GTK窗口
- 21. 將串口數據映射爲整數
- 22. 如何將DOM數據從一個窗口傳輸到另一個窗口?
- 23. 如何將數據從一個窗口傳遞到另一個窗口?
- 24. 你如何隱藏Gtk#窗口?
- 25. 如何使用GTK +創建子窗口?
- 26. 重新打開GTK和matplotlib窗口 - GTK窗口爲空
- 27. 如何在GTK的主窗口中居中對話窗口?
- 28. 在Java中的另一個數據映射器內使用數據映射器?
- 29. 如何從格里芬的框架數據映射數據庫映射數據
- 30. Scala如何將一對Seq對象映射到一個映射?
這是回答的問題的地方,沒有。順便說一句,我這是你的問題是,你設置一個「pID」屬性,並嘗試檢索「processID」屬性。 – liberforce 2012-03-14 16:55:38
是的,這只是一個打字問題,而編輯這個錯誤定位(sry)的問題。問題依然存在。 但你的意思是,通常這應該工作? – sobolog 2012-03-14 17:50:26
從文檔中,g_object_get_property僅用於綁定。您應該改用g_object_get和g_object_set。我不是GObject的專家,但我認爲你需要創建屬性才能獲取/設置它。請參閱GObject文檔中的g_object_class_install_property和g_object_class_install_properties。 – liberforce 2012-03-15 08:49:50