我使我的界面與林間空地。很棒。 我寫了一個小小的主函數,它調用gtkbuilder並呈現glade文件中的所有內容。我錯過了與glade gtkbuilder明顯的連接信號。幫幫我?
Gtk::Main kit(num, opts);
// Load the GtkBuilder file and instantiate its widgets:
Glib::RefPtr<Gtk::Builder> builder = Gtk::Builder::create_from_file("dsg.glade", "mainwindow");
工程更好。然後我得到我的小部件
Gtk::Button *sf = 0;
builder->get_widget("button", sf);
現在是什麼?我發現連接信號處理程序的每個示例都不是由gtkbuilder構建的。如果你實例化你自己的類來表示/處理/渲染一個按鈕,很容易將信號處理程序連接到它,但是我正在使用gtkbuilder,並且我看不到如何編寫一個函數,然後我可以將它附加到我的小部件,因爲我不是創建按鈕對象的人,所以gtkbuilder是。
我是否將gtkbutton的子類寫入我的函數然後指向那個?但是我的類沒有被gtkbuilder實例化。
我只是不明白。幫幫我?
非常感謝。很高興知道我不會瘋了。 – stu 2010-11-04 20:33:40
看來你所要做的就是將它連接到一個獨立的函數,就像一個不屬於類的函數一樣。我明白了爲什麼將它附加到一個類會是一個問題,實際上,這是我遇到的確切問題,您沒有獲取回調的對象的源代碼。 – stu 2010-11-04 20:34:43
我想象一下將它綁定到C++函數將是一個PIA。我想我可以打電話給gtk_builder_connect_signals(),如果我讓所有的信號處理程序extern「C」{} – stu 2010-11-04 20:35:28