Здравствуйте, гость ( Вход | Регистрация )
PAFOS | Дата 19.1.2011, 17:51 |
Можно вызвать метод виджета из второго потока, но в этом случае метод выполнится в главном потоке Если такое положение дел устроит тогда три варианта могу предложить: 1. Сигнал - Слот ( Если сигнал вызывается из второстепенного потока, в слот главного потока, то вызов помещается в очередь событий) 2. используй QMetaObject::invokeMethod( widget, "methodName", ..., Qt::QueuedConnection ) Подробное описание см. в документации Не забудь указать в параметре Qt::QueuedConnection, что превратит вызов в событие 3. Создать класс события и послать его виджету, в которому предусмотреть его обработку. послать сообщение можно через QCoreApplication::postEvent(object, new SomEvent()), причем именно postEvent а не sendEvent)) P.S. любой это этих методов сразу же вернет управление, не дожидаясь результатов выполнения вызова |
|
kwisp | Дата 19.1.2011, 15:11 |
krasniy, боюсь никак. всё гуи должно быть в одном потоке причем в главном. |
|
krasniy | Дата 19.1.2011, 14:41 |
Суть в том что пытаюсь вызвать в QThread объект класса QAxWidget, проект собирается, но при запуске в отладочную консоль вываливается ASSERT failure in QWidget: "Widgets must be created in the GUI thread.", file kernel\qwidget.cpp, line 1233 поменять QAxWidget на QAxObject не могу, тогда не вызывается ActiveX элемент!!! Подскажите как быть! | |
Просмотр темы полностью (откроется в новом окне) | |
![]() |
Текстовая версия | Сейчас: 26.9.2023, 16:30 |