Hey folks!
It seems findChildren() does not find one specific widget (ever the same) if searched for via "parentWidget()->parentWidget()->findChildren<QWidget *>();"
but it can be find if i do "findChildren<QWidget *>();" in parentWidget of the parentWidget() ... i am sry if it might sound confusing 
Code should say more than tousand words i think...
There are 3 widgets (DeviceWrapperView, DeviceView, DPTWidget): DeviceViewWrapper contains DeviceView and DeviceView contains DPTWidget..
void DPTWidget::disableWidgets(QList<QWidget*> except){
qDebug() << "Search started ON: " << parentWidget()->parentWidget()->objectName();
listOfWidgets = parentWidget()->parentWidget()->findChildren<QWidget *>();
for (int i = 0; i < listOfWidgets.size(); i++) {
qDebug() << "Objectname: " << listOfWidgets.at(i)->objectName();
if(!except.contains(listOfWidgets.at(i))){
if(listOfWidgets.at(i)->isEnabled() == false)
listOfWidgets.removeAt(i);
else
listOfWidgets.at(i)->setEnabled(false);
}
else
listOfWidgets.removeAt(i);
}
}
void DPTWidget::disableWidgets(QList<QWidget*> except){
qDebug() << "Search started ON: " << parentWidget()->parentWidget()->objectName();
listOfWidgets = parentWidget()->parentWidget()->findChildren<QWidget *>();
for (int i = 0; i < listOfWidgets.size(); i++) {
qDebug() << "Objectname: " << listOfWidgets.at(i)->objectName();
if(!except.contains(listOfWidgets.at(i))){
if(listOfWidgets.at(i)->isEnabled() == false)
listOfWidgets.removeAt(i);
else
listOfWidgets.at(i)->setEnabled(false);
}
else
listOfWidgets.removeAt(i);
}
}
To copy to clipboard, switch view to plain text mode
Output is:
Search started ON: "deviceViewWrapperStack"
Objectname: "gotoHome"
Objectname: "floorsComboBox"
Objectname: ""
Objectname: "qt_scrollarea_viewport"
Objectname: ""
Objectname: ""
Objectname: ""
Objectname: ""
Objectname: "qt_scrollarea_hcontainer"
Objectname: "qt_scrollarea_vcontainer"
Objectname: "deviceView"
Objectname: "deviceTableView"
Objectname: ""
Objectname: "qt_scrollarea_hcontainer"
Objectname: "qt_scrollarea_vcontainer" .......
Code in DeviceViewWrapper
void DeviceViewWrapper
::setViewMode(QString viewMode
){ qDebug() << "ViewMode: " << viewMode;
ui.deviceView->setViewMode(viewMode);
QList<QWidget *> listOfWidgets = this->findChildren<QWidget *>();
for (int i = 0; i < listOfWidgets.size(); i++) {
qDebug() << "Objectname: " << listOfWidgets.at(i)->objectName();
}
qDebug() << "MY Objectname: " << this->objectName();
}
void DeviceViewWrapper::setViewMode(QString viewMode){
qDebug() << "ViewMode: " << viewMode;
ui.deviceView->setViewMode(viewMode);
QList<QWidget *> listOfWidgets = this->findChildren<QWidget *>();
for (int i = 0; i < listOfWidgets.size(); i++) {
qDebug() << "Objectname: " << listOfWidgets.at(i)->objectName();
}
qDebug() << "MY Objectname: " << this->objectName();
}
To copy to clipboard, switch view to plain text mode
Output is:
Objectname: "gotoHome"
Objectname: "floorsComboBox"
Objectname: ""
Objectname: ""
Objectname: "qt_scrollarea_viewport"
Objectname: "qt_scrollarea_hcontainer"
Objectname: ""
Objectname: "qt_scrollarea_vcontainer"
Objectname: ""
Objectname: "roomsComboBox"
Objectname: ""
Objectname: ""
Objectname: "qt_scrollarea_viewport"
Objectname: "qt_scrollarea_hcontainer"
Objectname: ""
Objectname: "qt_scrollarea_vcontainer"
Objectname: ""
Objectname: "deviceView"
Objectname: "deviceTableView" .......
.......................
MY Objectname: "deviceViewWrapperStack"
I am in fact missing the "roomsComboBox" in the output of "DPTWidget", according to the output of objectName() the 2 Objects where the searches were executed to are identical ..?
Hopefully somebody has an idea what i did wrong, maybe i am blind ...
Thanks!
Bookmarks