Нажмите любую клавишу чтобы продолжить |
Здравствуйте, гость ( Вход | Регистрация )
Нажмите любую клавишу чтобы продолжить |
precious |
21.4.2010, 23:44
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 21.4.2010 Пользователь №: 1648 Спасибо сказали: 0 раз(а) Репутация: 0 |
Есть пользовательский класс "Window", являющийся потомком класса QWidget
Необходимо реализвать метод, который ожидает нажатия любой клавиши и только после этого завершается (что-то вроде консольного гетча из конио). Некоторое время провозился с этой задачей - ничего не вышло. Поиск не дал требуемых результатов (возможно, не достаточно хорошо искал). Есть ли какие-то идеи касательно реализации такого метода? |
|
|
SABROG |
22.4.2010, 1:14
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Можно попробовать унаследоваться от QApplication и переопределить метод notify, где ловить все нажатия..
|
|
|
BRE |
22.4.2010, 8:21
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
precious, посмотри как в QDialog зделан метод exec, и по аналогии напиши свой метод, который будет крутить цикл обработки событий, и выход из которого будет происходить при событии keyPressed.
|
|
|
precious |
22.4.2010, 22:45
Сообщение
#4
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 21.4.2010 Пользователь №: 1648 Спасибо сказали: 0 раз(а) Репутация: 0 |
Проблема решилась с помощью QObject::eventFilter и QCoreApplication::processEvents.
По совету BRE глянул exec() в QDialog, потом в описании к QApplication::exec() прочел, что "Более продвинутые системы обработки ожидания могут быть построены с использованием processEvents()." Notify из QApplication переопределять уж сильно долго, по-моему. В общем спасибо всем отписавшимся. |
|
|
SABROG |
23.4.2010, 0:13
Сообщение
#5
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Я думал тебе глобально надо переопределить. То есть когда фокус где-нибудь в QLineEdit или любом другом дочернем виджете...
|
|
|
Текстовая версия | Сейчас: 28.1.2025, 18:45 |