2013-04-20 1 views
0

Испускаемые элементы, включенные в настраиваемую нить внутри моей программы, не работают. кажется, что у моего потока нет связи с основным потоком пользовательского интерфейса. в C# у нас есть диспетчер потоков, чтобы справиться с этим. как насчет QT?не может испускать из определенного потока в основной поток пользовательского интерфейса

это работает внутренняя резьба:

void myThread::run(){ 

    while(1) 
    { 
     //do something 
     emit display("show the result"); //NOT WORKING, THOUGH CONNECTED 
    } 
} 

MyThread хх; xx.start();

+0

Можете ли вы разместить код? Как определены сигналы/слоты, соедините/испустите код. – evilruff

ответ

0

Это потому, что вы, похоже, неправильно используете QThread. В QThread есть цикл событий, и в вашем случае этот цикл событий блокируется в вашей функции run().

Вместо этого вы должны реализовать QObject, в который вы помещаете код, который хотите запустить, а затем создать ванильный QThread и использовать QObject :: moveToThread(), чтобы переместить QObject в этот поток. Затем вы можете отправлять и получать сигналы нормально, так как цикл событий QThread не блокируется.

https://stackoverflow.com/a/13142366/856199

Смежные вопросы

 Смежные вопросы