C++Qt实现,点击主窗口的Toolbutton,弹出子窗口,在子窗口中设置一个中心窗口
时间: 2023-06-20 09:06:44 浏览: 143
qt--主窗口中按钮弹出子窗口,并把主窗口信号发送给子窗口
5星 · 资源好评率100%
可以按照以下步骤实现:
1. 在Qt Creator中创建一个主窗口工程,添加一个ToolButton控件。
2. 在主窗口的.cpp文件中,连接ToolButton的clicked()信号到一个槽函数。
3. 在槽函数中创建一个子窗口,并设置其为主窗口的子窗口。
4. 在子窗口中添加一个QWidget控件,并设置其为中心窗口。
以下是示例代码:
```cpp
// 主窗口.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "subwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->toolButton, &QToolButton::clicked, this, &MainWindow::onToolButtonClicked);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::onToolButtonClicked()
{
SubWindow *subWindow = new SubWindow(this);
setCentralWidget(subWindow);
}
```
```cpp
// 子窗口.cpp
#include "subwindow.h"
#include "ui_subwindow.h"
SubWindow::SubWindow(QWidget *parent) :
QWidget(parent),
ui(new Ui::SubWindow)
{
ui->setupUi(this);
QWidget *centerWidget = new QWidget(this);
setCentralWidget(centerWidget);
}
SubWindow::~SubWindow()
{
delete ui;
}
```
注意,子窗口需要使用QMainWindow作为基类,并且要在构造函数中调用setCentralWidget()方法来设置中心窗口。在主窗口中,点击ToolButton后,需要创建一个子窗口并调用setCentralWidget()方法来设置主窗口的中心窗口。
阅读全文