Название: Ожидания нажатия клавишы. Отправлено: SubaroMows от Ноябрь 30, 2011, 18:41 Доброго время суток.
Встала задача: в методе ожидать, до тех пор пока не нажата клавиша. К примеру есть форма на которой задают вопросы: Текст вопроса Ответ на вопрос. кнопка которая говорит следующий вопрос и подтверждает текущий. Есть метод, который возвращает ответ на вопрос. Код: QString askQuest() { можно конечно сделать типа Код: while (btnClicked <> true); Но циклы while не есть тон хорошего программирования. Видел пример с QMessageBox, решающей мою проблему Код: QMessageBox msgBox; типа условие будет выполнятся только в том случае, если нажали кнопку. Посути мне нужно такое же на форме сделать. Название: Re: Ожидания нажатия клавишы. Отправлено: kambala от Ноябрь 30, 2011, 18:57 а вынести то, что в твоем методе идет после нажатия на кнопку, в отдельный слот/метод нельзя?
Название: Re: Ожидания нажатия клавишы. Отправлено: SubaroMows от Ноябрь 30, 2011, 19:40 Никак вообще.
Я вызываю str = askQuest(); В другом методе. Название: Re: Ожидания нажатия клавишы. Отправлено: SubaroMows от Ноябрь 30, 2011, 20:18 Элегантное решение:
Код: QEventLoop eventLoop; сигнал nextClicked срабатывает в том случае если клавиша нажата, следовательно eventLoop.exec(), закрывается, и программа идёт дальше по коду. Название: Re: Ожидания нажатия клавишы. Отправлено: Bepec от Декабрь 01, 2011, 07:09 Мда, оригинально, не скажешь. сам бы я в жизни не додумался что так можно сделать.
По сути у тебя и есть цикл бесконечный, так еще и утяжеленный сигналом :) |