要访问 Qt 上的父窗口小部件,您可以使用 QWidget::parentWidget()
方法。这个方法会返回当前小部件的父窗口。以下是一个简单的示例:
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget *parentWidget = new QWidget();
QPushButton *button = new QPushButton("按钮", parentWidget);
QLabel *label = new QLabel("标签", parentWidget);
QObject::connect(button, &QPushButton::clicked, [=]() {
QWidget *parent = button->parentWidget();
if (parent) {
qDebug() << "父窗口的名称:"<< parent->objectName();
} else {
qDebug() << "没有找到父窗口";
}
});
parentWidget->show();
return app.exec();
}
在这个示例中,我们创建了一个父窗口 parentWidget
,并在其中添加了一个按钮 button
和一个标签 label
。然后,我们使用 QObject::connect
方法连接按钮的 clicked
信号到一个 lambda 函数。当按钮被点击时,该函数会尝试获取按钮的父窗口,并输出其名称。
注意,如果小部件没有父窗口,parentWidget()
方法将返回 nullptr
。因此,在使用返回的父窗口之前,请确保检查其是否为空。
领取专属 10元无门槛券
手把手带您无忧上云