如何通过名称获取父对象? QWidget::parentWidget()仅上升一级; 我宁愿需要一个等同于QObject::findChild()的递归搜索。

===============>>#1 票数:3 已采纳

QWidget继承QObject因此QObject::objectName QWidgets可用于所有QWidgets

您可以通过创建一个类似于以下的自由函数来递归父树(请注意这是未经测试的代码)

QWidget* parentByName(QWidget* widget, QString name)
{
    widget = parentWidget();
    if (widget && widget->objectName() != name)
        return parentByName(widget, name);
    return widget;
}

这将返回您正在查找的小部件,或者在无法找到的情况下返回nullptr

  ask by Sceptical Jule translate from so

未解决问题?本站智能推荐: