Qt, проблема с фокусом QPushButton

Модератор: Модераторы разделов

stigger
Сообщения: 154
ОС: CentOS 5.4

Qt, проблема с фокусом QPushButton

Сообщение stigger »

на форме лежит два виджета - QLineEdit и QPushButton.
тыкаем в QLineEdit, чего-нибудь пишем и нажимаем enter - срабатывает QPushButton, что мне совсем не нужно.

при этом если собрать под винду и запустить (со стандартным виндовым голубеньким стилем), то видно что вокруг баттона такая жёлтенькая окантовка.. при этом фокус находится на QLineEdit - курсор мигает, текст редактируется.

если у QPushButton focusPolicy прописать в Qt::NoFocus то проблема решается, при нажатии enter'а в QLineEdit ничего не происходит. но хотелось бы решить проблему так, чтобы сохранить возможность tab'ом попасть на QPushButton.

что можете посоветовать?
Спасибо сказали:
Аватара пользователя
oav
Бывший модератор
Сообщения: 296

Re: Qt, проблема с фокусом QPushButton

Сообщение oav »

Твоя проблема (которая вовсе даже не такова) называется Default Button

Read the following manual:
Default button

A dialog's default button is the button that's pressed when the user presses Enter (Return). This button is used to signify that the user accepts the dialog's settings and wants to close the dialog. Use QPushButton::setDefault(), QPushButton::isDefault() and QPushButton::autoDefault() to set and control the dialog's default button.
Спасибо сказали:
stigger
Сообщения: 154
ОС: CentOS 5.4

Re: Qt, проблема с фокусом QPushButton

Сообщение stigger »

уф..огромное спасибо!
я когда у знакомых спрашивал описывал это явление как "предрасположенность к фокусировке" =)
не знал про такую штуку...
Спасибо сказали:
Аватара пользователя
messer
Сообщения: 98
ОС: линугз

Re: Qt, проблема с фокусом QPushButton

Сообщение messer »

фокус можно установить при помощи button->setFocus();
Gentoo 2006.0
"Когда я вижу что-либо смешное , я весь просто трясусь от смеха. Поэтому всегда хожу небритый.")))
Спасибо сказали:
stigger
Сообщения: 154
ОС: CentOS 5.4

Re: Qt, проблема с фокусом QPushButton

Сообщение stigger »

э..ну мне не нужно было ставить фокус..
Спасибо сказали: