我想让我的程序等到单击按钮。
问题是,
Glib::usleep()
这样的函数,因为它会使接口不敏感。我没有找到解决这个问题的任何策略。
答案 0 :(得分:-1)
是否有任何反对使用基于事件的Gtkmm方式,即将听众连接到按钮的点击信号?
这看起来像这样:
helloworld.h
class HelloWorld : public Gtk::Window
{
// ...
protected:
//Signal handlers:
void on_button_clicked();
//Member widgets:
Gtk::Button m_button;
};
helloworld.cc
// ...
HelloWorld::HelloWorld()
: m_button("Hello World") // creates a new button with label "Hello World".
{
// ...
// When the button receives the "clicked" signal, it will call the
// on_button_clicked() method defined below.
m_button.signal_clicked().connect(sigc::mem_fun(*this,
&HelloWorld::on_button_clicked));
// ...
}
void HelloWorld::on_button_clicked()
{
std::cout << "Hello World" << std::endl;
}
完整示例here。
基本上,在HelloWorld :: on_button_clicked中,您将执行必须等到单击按钮的操作。
答案 1 :(得分:-1)
好的,我找到了解决方案:
// computation going on
while( Gtk::Main::events_pending() )
Gtk::Main::iteration();
// computation continued
https://developer.gnome.org/gtkmm/stable/classGtk_1_1Main.html#a2a2a6cddef82f8c52026790f3f7887e0
欢迎任何评论或其他答案