2009-04-16 8 views
0

Я использую gtkmm (и glibmm), и я хотел бы обновить GUI из другого потока. Я последовал примеру наgtkmm: обновление gui из другой темы?

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

, но у меня есть 2 вопроса:

  • Вместо бойким :: MainLoop получающего события, возможно для Gtk :: Main (что запускает мое окно), чтобы принимать сигналы?

  • Могу ли я использовать функции с аргументами в некотором роде? Я знаю, что это возможно с помощью SigCX, но я думал, что синтаксис был немного противным.

Чин!

ответ

1

Возможно, ваш Glib :: MainLoop принимает события, а затем отправляет их в Gtk :: Main.

Я считаю, что единственный способ подключения с помощью настраиваемых аргументов - использовать sigc :: bind.

Например, говорит, что вы хотели передать в целом, а также указатель на виджет в вопросе:

pWidget->signal_foo().connect( 
      sigc::bind<int, Gtk::SomeWidget*>( 
       sigc::mem_fun(*this, &Bar::OnFooBar), i, pWidget)); 

 Смежные вопросы

  • Нет связанных вопросов^_^