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

의 예를 따랐다 그러나 나는이 개 질문이 대신 입심 :: 주회 돌이 이벤트를 수신

  • 를, 그것은 (있는은 Gtk :: 메인 가능합니다 신호를 받아들이려면 내 창을 띄웁니다)?

  • 어떤 방식 으로든 인수를 사용하여 함수를 연결할 수 있습니까? SigCX를 사용하는 것이 가능하다는 것을 알고 있지만 문법이 조금 불쾌하다고 생각했습니다.

THanks!

답변

1

Glib :: MainLoop에서 이벤트를받은 다음 Gtk :: Main으로 디스패치 할 수 있습니다.

사용자 정의 인수로 연결하는 유일한 방법은 sigc :: bind를 사용하는 것입니다.

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

예를 들어

, 당신은 문제의 위젯에 정수뿐만 아니라 포인터를 전달하고 싶었다 말한다

관련 문제