Russian Qt Forum

Qt => Многопоточное программирование, процессы => Тема начата: virtual_root от Ноябрь 15, 2012, 12:16



Название: Как в потоке создать QWidget?
Отправлено: virtual_root от Ноябрь 15, 2012, 12:16
Доброго времени суток) насколько мне известно, то в версии qt 4.8 нельзя в потоке создавать формы. Может кто знает как эту проблему разрешить? Можно ли залесть в исходники qt и что-нибудь там дописать?


Название: Re: Как в потоке создать QWidget?
Отправлено: Serr500 от Ноябрь 15, 2012, 12:23
насколько мне известно, то в версии qt 4.8 нельзя в потоке создавать формы.
Немного не так. Нельзя создавать виджеты в потоке, отличном от GUI-потока.

Может кто знает как эту проблему разрешить?
Может кто и знает. Вроде бы, в Qt5 эту проблему обещали решить.

Можно ли залесть в исходники qt и что-нибудь там дописать?
Можно. Встречал там код определения потока и вывод ошибки, если поток не GUI-шный. Но вряд ли тролли просто так запретили создавать виджеты в других потоках. Думаю, что для корректной работы переписывать придётся очень много.


Название: Re: Как в потоке создать QWidget?
Отправлено: Igors от Ноябрь 15, 2012, 12:28
Доброго времени суток) насколько мне известно, то в версии qt 4.8 нельзя в потоке создавать формы. Может кто знает как эту проблему разрешить? Можно ли залесть в исходники qt и что-нибудь там дописать?
Лазить не надо. Посылайте главной нитке сигналы (через QueuedConnection) по которым она будет работать с UI, создавать виджеты, заполнять их, и.т.п. используя данные сигналов