按对象名称

时间:2016-05-24 18:00:44

标签: c++ qt user-interface

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

1 个答案:

答案 0 :(得分:3)

QWidget继承了QObject,因此所有QObject::objectName都可以使用QWidgets

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

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

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