मेरे पास दो चेकबॉक्स हैं (QCheckbox), जिनमें से पहला मैं कभी-कभी छुपाता हूं। छिपाने के बाद() मैं फिर मूल विजेट के लिए अगला इनफोकसचैन() पुनर्प्राप्त करना चाहता हूं। यह पहला चेकबॉक्स देता है, भले ही वह छिपा हो या नहीं। क्या मुझसे कुछ गलत हो रही है? मैंने सोचा होगा कि एक छुपा विजेट फोकस श्रृंखला का हिस्सा नहीं है, इसलिए इसे वापस नहीं किया जाना चाहिए।

if (shouldHideFirstCheckbox) {
    firstCheckbox.hide();
}
QCheckBox* nextWidget = dynamic_cast<QCheckBox*>(nextInFocusChain());
// nextWidget is always firstCheckbox, regardless of whether it's hidden
0
Nagli 1 मार्च 2019, 20:01

1 उत्तर

सबसे बढ़िया उत्तर

संक्षिप्त उत्तर: यह डिजाइन द्वारा है।

यदि आप QWidget::setTabOrder() के कार्यान्वयन को देखते हैं, तो आप देखेंगे कि विजेट की दृश्यता को ध्यान में नहीं रखा गया है: https://code.woboq.org/qt5/qtbase/src/widgets/kernel/qwidget.cpp.html#6969

0
user3132457 2 मार्च 2019, 19:01