Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: jurtal от Июня 02, 2011, 12:20



Название: Фокус & arrow buttons
Отправлено: jurtal от Июня 02, 2011, 12:20
Всем привет!
Столкнулся с непонятным для меня фактом. Есть группа виджетов. Часть отнаследована от QWidget, часть от QPushButton. проблемма в том, что при помощи клавиш "стрелки" фокус перемещается только по виджетам наследованным от кнопок. Наследование от QPushButton вместо QWidget решает вопрос... В чем может быть проблемма?


Название: Re: Фокус & arrow buttons
Отправлено: GreatSnake от Июня 02, 2011, 12:22
В чем может быть проблемма?
void   QWidget::setFocusPolicy ( Qt::FocusPolicy policy )
У QPushButton используется Qt::StrongFocus.


Название: Re: Фокус & arrow buttons
Отправлено: jurtal от Июня 02, 2011, 12:38
Думаю что не поэтому. У меня тоже у всех виджетов StrongFocus.


Название: Re: Фокус & arrow buttons
Отправлено: GreatSnake от Июня 02, 2011, 12:54
QWidget игнорирует стрелочные кнопки, которые обрабатывет QAbstractButton.
Почему бы не наследоваться от последнего?


Название: Re: Фокус & arrow buttons
Отправлено: jurtal от Июня 02, 2011, 12:59
Видимо в этом причина. Так и сделал, отнаследовался от абстрактной кнопки. Я не нашел в ассистанте где у кнопок стрелки обрабатываются. Надо внимательнее глянуть. Спасибо.


Название: Re: Фокус & arrow buttons
Отправлено: GreatSnake от Июня 02, 2011, 13:01
Я не нашел в ассистанте где у кнопок стрелки обрабатываются.
void QAbstractButton::keyPressEvent ( QKeyEvent * e ) [virtual protected]