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