https://stackoverflow.com/questions/6551456/how-to-get-the-topbase-parentwidget-in-qt
I am creating a software that must be accessible by parent to childrenWidget (or children of the children of the children....) and from the children to the parentWidget (or the parent of the parent of the parent ...).
For example :
QWidget_Principal --> WidgetApplications --> WidgetMenuBar --> PushButtonFullScreen.
The problem is that the way I can do this, is doing
this->parentWidget()->parentWidget()->parentWidget()->showFullScreen();
This there a simple way to do that ?
Thanks in Advance And sorry for my very bad english.
Luis Da Costa
Answers
推荐
方法一:use QWidget * QWidget::window () const
to get window widget for your widget.
There is also QWidgetList QApplication::topLevelWidgets () [static]
function, to get list of all top level widgets in your app...
方法二:Another approach:
QWidget* topWidget = QApplication::topLevelAt(yourWidget->mapToGlobal(QPoint()));
方法三:Just write a global function:
QWidget* TopLevelParentWidget (QWidget* widget)
{
while (widget -> parentWidget() != Q_NULLPTR) widget = widget -> parentWidget() ;
return widget ;
}