我們正在編寫使用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. 如何將窗口映射到3D
- 2. GTK/GDK如何找出一個窗口是否被另一個窗口覆蓋?
- 3. 如何關閉Gtk#窗口
- 4. 讓一個窗口顯示在GTK +
- 5. 在同一個程序中合併SDL窗口和GTK +窗口
- 6. 如何在py-gtk窗口中顯示連續數據?
- 7. 如何在gtk3中獲得一個活動的gtk窗口?
- 8. 如何創建一個窗口,改變輸入文本GTK
- 9. GTK窗口動畫?
- 10. GTK窗口提示
- 11. 關閉GTK窗口
- 12. 如何將數據從一個窗口傳遞到另一個窗口?
- 13. 如何將DOM數據從一個窗口傳輸到另一個窗口?
- 14. 你如何隱藏Gtk#窗口?
- 15. 在Java中的另一個數據映射器內使用數據映射器?
- 16. 如何從格里芬的框架數據映射數據庫映射數據
- 17. 創建一個接口的OneToMany映射
- 18. 如何把Gtk:網格放到Gtk:使用gtkmm的窗口
- 19. 一口流利Nhibernatetest映射
- 20. 如何從回調函數獲取另一個窗口的窗口小部件的指針 - GTK - C
- 21. 數據映射器應該如何返回一個域對象?
- 22. 映射到一個數組
- 23. gtk +關閉第二個窗口
- 24. Gtk日曆填充整個窗口
- 25. C++ gtk打開多個窗口
- 26. heidisql - 每個數據庫一個窗口
- 27. 如何使用XLib創建映射但不可見的窗口?
- 28. 編程關閉gtk窗口
- 29. 使用窗口從gtk
- 30. Python GTK窗口瀏覽器
這是回答的問題的地方,沒有。順便說一句,我這是你的問題是,你設置一個「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