Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Andrew Vladoff от Февраль 28, 2009, 13:36



Название: Доступ к компонентам главной формы из потка.
Отправлено: Andrew Vladoff от Февраль 28, 2009, 13:36
Подскажите как получить доступ к изменению значений компонентов (QLabel) главной формы из другого потока. Раньше программировал на Builder там выло так
Код:
MaiForm->Label->Caption ="SS'";
А как аналогичная строка будет выглядеть на Qt?


Название: Re: Доступ к компонентам главной формы из потка.
Отправлено: lit-uriy от Февраль 28, 2009, 14:37
суть таже, только указатель на MainForm в поток передать надо.


Название: Re: Доступ к компонентам главной формы из потка.
Отправлено: pastor от Февраль 28, 2009, 17:17
суть таже, только указатель на MainForm в поток передать надо.

неверно! Если мы так сделаем, наше приложение вывалится в кору.


Работать с гуем можно только в гуевом (основном) потоке. Для установки значения QLabel из другого потока можно использовать механизм сигнал-слот или custom event.

См. Thread Support in Qt (http://doc.trolltech.com/4.4/threads.html)


Название: Re: Доступ к компонентам главной формы из потка.
Отправлено: Racheengel от Февраль 28, 2009, 21:11
лучше уж эвенты - меньше ресурсов жрут.


Название: Re: Доступ к компонентам главной формы из потка.
Отправлено: lit-uriy от Март 01, 2009, 08:50
2 pastor, да блин, я всё время забываю про это. Может потому, что сам не пользую GUIшные классы в доппотоке, как-то в этом у меня нужды не возникает.