Qt: скрытый виджет, возвращаемый для nextInFocusChain () - PullRequest
0 голосов
/ 01 марта 2019

У меня есть два флажка (QCheckbox), первый из которых я иногда скрываю.После вызова hide () я хочу получить nextInFocusChain () для родительского виджета.Это возвращает первый флажок, независимо от того, скрыт он или нет.Я делаю что-то неправильно?Я бы подумал, что скрытый виджет не является частью цепочки фокусировки, поэтому его не следует возвращать.

if (shouldHideFirstCheckbox) {
    firstCheckbox.hide();
}
QCheckBox* nextWidget = dynamic_cast<QCheckBox*>(nextInFocusChain());
// nextWidget is always firstCheckbox, regardless of whether it's hidden

1 Ответ

0 голосов
/ 02 марта 2019

Краткий ответ: это разработано.

Если вы посмотрите на реализацию QWidget::setTabOrder(), вы увидите, что видимость виджета не учитывается: https://code.woboq.org/qt5/qtbase/src/widgets/kernel/qwidget.cpp.html#6969

...