我使我的界面与林间空地。很棒。 我写了一个小小的主函数,它调用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