帮我写一个QT子窗口修改父窗口控件属性demo
时间: 2024-01-20 13:04:26 浏览: 61
以下是一个简单的QT子窗口修改父窗口控件属性的demo,其中包含一个按钮和一个文本框,点击按钮后会改变父窗口的标题:
```
#include <QtWidgets>
class ChildWindow : public QWidget
{
Q_OBJECT
public:
ChildWindow(QWidget *parent = nullptr) : QWidget(parent)
{
QVBoxLayout *layout = new QVBoxLayout(this);
QPushButton *button = new QPushButton("Click me", this);
QLineEdit *lineEdit = new QLineEdit(this);
layout->addWidget(button);
layout->addWidget(lineEdit);
connect(button, &QPushButton::clicked, this, [=]()
{
parentWidget()->setWindowTitle(lineEdit->text());
});
}
};
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr) : QMainWindow(parent)
{
QWidget *centralWidget = new QWidget(this);
setCentralWidget(centralWidget);
QVBoxLayout *layout = new QVBoxLayout(centralWidget);
QPushButton *button = new QPushButton("Open child window", centralWidget);
layout->addWidget(button);
connect(button, &QPushButton::clicked, this, [=]()
{
ChildWindow *childWindow = new ChildWindow(this);
childWindow->show();
});
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow mainWindow;
mainWindow.show();
return app.exec();
}
#include "main.moc"
```
在主窗口中,我们创建了一个按钮,点击该按钮会打开一个子窗口。子窗口中包含一个文本框和一个按钮,点击该按钮会修改主窗口的标题。在子窗口中,我们通过调用`parentWidget()`函数获取到父窗口,然后调用`setWindowTitle()`函数修改父窗口的标题。
阅读全文