0

我正在使用 gtkmm(和 glibmm),我想从另一个线程更新 GUI。我已经按照上的例子

http://www.gtkmm.org/docs/glibmm-2.4/docs/reference/html/thread_2dispatcher_8cc-example.html#_a1

但我有两个问题:

  • 不是 Glib::MainLoop 接收事件,而是 Gtk::Main (运行我的窗口)是否可以接受信号?

  • 我可以以某种方式使用带参数的 .connect() 函数吗?我知道使用 SigCX 是可能的,但我认为那里的语法有点讨厌。

谢谢!

4

1 回答 1

1

您可以让 Glib::MainLoop 接收事件,然后将其分派给 Gtk::Main。

我相信连接自定义参数的唯一方法是使用 sigc::bind。

例如,假设您想传入一个整数,以及一个指向相关小部件的指针:

pWidget->signal_foo().connect( 
            sigc::bind<int, Gtk::SomeWidget*>( 
                sigc::mem_fun( *this, &Bar::OnFooBar ), i, pWidget ) );  
于 2009-04-30T19:23:36.313 回答