Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: DarkHobbit от Май 08, 2019, 11:21



Название: Tab order с учётом фреймов
Отправлено: DarkHobbit от Май 08, 2019, 11:21
Добрый день.

Имеется программа с некоторым количеством хитрых диалогов. Хитрость состоит в том, что у них есть одинаковая часть, сделанная дизайнером. И помимо обычных полей ввода там есть фрейм для вставки переменной части. Переменная часть - это ещё один фрейм с уже специфическими полями, который вставляется программно (возможно, даже из загруженного динамически плагина).
Теперь надо выстроить порядок обхода элементов. И в диалоге, и во вставляемом из отдельного элемента фрейме порядок обхода настроен. Когда пользователь начинает нажимать Tab, все поля из постоянной части обходятся, когда дело доходит до фрейма, фокус перескакивает на кнопки внизу окна, хотя по Tab order они идут после фрейма. (У фрейма focus policy выставлена в WheelFocus.) И только после кнопок управление возвращается на элементы фрейма.

Можно с этим что-то сделать? Может, попробовать переупорядочить их в программе сплошняком и вызывать QWidget::setTabOrder(w1, w2), если у w1 родителем является сам диалог, а у w2 - дочерний фрейм? Но корректно ли вызывать setTabOrder для виджетов из разных уровней иерархии? В документации я этот момент не нашёл...


Название: Re: Tab order с учётом фреймов
Отправлено: DarkHobbit от Декабрь 18, 2019, 01:10
Вопрос, кстати, по-прежнему актуален. :(