Russian Qt Forum
Ноябрь 26, 2024, 16:51
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Как добраться до метода keyPressEvent виджета на форме? (Qt 4.6.0)
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как добраться до метода keyPressEvent виджета на форме? (Qt 4.6.0) (Прочитано 3516 раз)
ymb
Гость
Как добраться до метода keyPressEvent виджета на форме? (Qt 4.6.0)
«
:
Январь 13, 2010, 15:28 »
Есть форма Form1. на ней есть три виджета типа QLineEdit. необходимо сделать преход от QLineEdit1 к QLineEdit2 и далее к QLineEdit3 по нажатию клавиши Enter. В файле Form1.cpp пишу функцию
void Form1::keyPressEvent( QKeyEvent *event )
{
if (event->key() == Qt::Key_Enter)
... обработка нажатия Enter
}
}
Какие дальнейшие действия?
PS: Почему-то программа реагирует только на кнопку Enter цифровой клавиатуры. А на Enter основной не реагирует.
Записан
Dendy
Гость
Re: Как добраться до метода keyPressEvent виджета на форме? (Qt 4.6.0)
«
Ответ #1 :
Январь 13, 2010, 15:39 »
Потому что это разные кнопки - Qt::Key_Enter и Qt::Key_Return. Я бы на вашем месте реагировал на сигнал QLineEdit::returnPressed() и устанавливал фокус с помощью QWidget::setFocus().
Записан
ymb
Гость
Re: Как добраться до метода keyPressEvent виджета на форме? (Qt 4.6.0)
«
Ответ #2 :
Январь 13, 2010, 15:59 »
Сделал примерно так:
void Form1::on_QLineEdit1_returnPressed()
{
QLineEdit2->setFocus();
}
void Form1::on_QLineEdit2_returnPressed()
{
QLineEdit3->setFocus();
}
Теперь работает.
Спасибо.
«
Последнее редактирование: Январь 13, 2010, 16:03 от ymb
»
Записан
DS_tm
Гость
Re: Как добраться до метода keyPressEvent виджета на форме? (Qt 4.6.0)
«
Ответ #3 :
Январь 13, 2010, 17:26 »
можно также в конструкторе вручную законнектить returnPassed от всех QLineEdit на общий слот и в слоте вызывать focusNextChild(). Такой вариант кажеться мне более локаничным.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...