Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ Перемещение по Виджетам при нажатии на "Enter"

Автор: potkin 26.11.2010, 23:47

По умолчанию перемещение между Виджетами происходит при нажатии на клавишу "Таб", а вот как сменить эту клавишу на "Ентер" ???
может кто сталкивался, а то проблемка распространённая, кто писал складские программы, поймут )))

Автор: maint 27.11.2010, 2:37

что то вроде

void имя_головного_виджета::keyPressEvent(QKeyEvent *event)
{

    if (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return) {
        focusNextChild();
        return;
    }
    QWidget::keyPressEvent(event);

Автор: panter_dsd 27.11.2010, 11:00

installEventFilter. И еще не забывай, что есть 2 энтера: Qt::Key_Enter, Qt::Key_Return. В диалогах придется обходить проблему срабатывания кнопки Ok по энтеру. Удачи. :)

Автор: potkin 30.11.2010, 23:47

maint, panter_dsd,
Ок, Спасибо !!!
Только, когда дохожу до батона (кнопки), по нажатию на Ентер она не срабатывает, а срабатывает на нажатие на "Пробел", а вот как сделать что бы и на Ентер срабатывал обработчик событий ???

Автор: panter_dsd 1.12.2010, 8:27

Я делал срабатывание на Ctrl+Enter, это более логично. А так, можешь в фильтре сообщений проверять от кого оно пришло и, если это кнопка, делать accept диалогу.

Автор: Litkevich Yuriy 1.12.2010, 11:21

Цитата(potkin @ 1.12.2010, 1:47) *
по нажатию на Ентер она не срабатывает
и правильно, а иначе как к другим элементам управления переходить.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)