Russian Qt Forum

Qt => Многопоточное программирование, процессы => Тема начата: Vamireh от Август 26, 2013, 10:39



Название: Отдельный поток, участие пользователя, как лучше сделать?
Отправлено: Vamireh от Август 26, 2013, 10:39
В отдельном потоке делается продолжительная во времени задача. Иногда нужно участие пользователя. например, сообщение abort/rerty/ignore. Из потока высылается сигнал, который слотом в главном потоке через blockingQueue показывает сообщение. как в потоке после высылки этого сигнала узнать какую кнопку нажал пользователь? через задницу я это сделаю, но есть ли изящные способы?


Название: Re: Отдельный поток, участие пользователя, как лучше сделать?
Отправлено: Serr500 от Август 26, 2013, 14:47
Передать указатель на переменную, которая примет код нажатой кнопки. А ещё лучше с каждой кнопкой связать какое-либо действие и передать код действия. Действия можно перечислить, например, в enum.


Название: Re: Отдельный поток, участие пользователя, как лучше сделать?
Отправлено: mutineer от Август 26, 2013, 22:36
Если получатель сигнала в потоке известен, то вместо сигнала сделать invokeMethod(...) и передать кнопку через возвращаемое значение