Название: Обращение к графическому интерфейсу из другого потока Отправлено: Valter от Декабрь 25, 2012, 13:00 Как я понимаю, в Qt так делать нельзя, ошибка возникает:
(http://s42.radikal.ru/i095/1212/fc/54dbd28e51cft.jpg) (http://radikal.ru/F/s42.radikal.ru/i095/1212/fc/54dbd28e51cf.jpg.html) Как принято в Qt поступать в таких случаях? Название: Re: Обращение к графическому интерфейсу из другого потока Отправлено: mutineer от Декабрь 25, 2012, 13:02 Переносить обращения к ГУЯм в основной поток
Название: Re: Обращение к графическому интерфейсу из другого потока Отправлено: Bepec от Декабрь 25, 2012, 13:23 Правильно мыслишь, Valter.
Так в Qt делать нельзя. А можно сделать проще - создать слот в гуи классе, который будет производить нужные действия. И вызывать его. Название: Re: Обращение к графическому интерфейсу из другого потока Отправлено: Dancing_on_water от Декабрь 26, 2012, 08:53 Не совсем так. Да, все элементы гуя должны жить в основном потоке (это ограничение Х-сервера, под которое приходится подстраиваться). Но, если элемент еще не отрисован, то вполне допустимо, чтоб его элементы менялись напрямую из другого потока.
Если уже отрисован, то как посоветовали: делаешь слот и соединяешь через queue. Название: Re: Обращение к графическому интерфейсу из другого потока Отправлено: Bepec от Декабрь 26, 2012, 08:59 Dancing_on_water - ГУИ такая штука, что промежуток между "отрисовкой" и "не отрисовкой" обычно ничтожно малый. :) Потому лучше использовать слоты.
|