qt中的父窗口做一个按钮,按下去后会显示出新窗口的代码,头文件和源文件分开、
时间: 2024-05-06 12:16:52 浏览: 7
首先,我们需要在父窗口中添加一个按钮,然后在按钮的槽函数中创建并显示新窗口。
头文件:
```cpp
#ifndef PARENTWINDOW_H
#define PARENTWINDOW_H
#include <QWidget>
#include "childwindow.h" // 包含新窗口的头文件
class ParentWindow : public QWidget
{
Q_OBJECT
public:
ParentWindow(QWidget *parent = nullptr);
~ParentWindow();
private slots:
void showChildWindow(); // 按钮的槽函数
private:
ChildWindow *m_childWindow; // 新窗口的指针
QPushButton *m_button; // 父窗口中的按钮
};
#endif // PARENTWINDOW_H
```
源文件:
```cpp
#include "parentwindow.h"
#include <QPushButton>
ParentWindow::ParentWindow(QWidget *parent)
: QWidget(parent)
{
// 创建按钮
m_button = new QPushButton("Show Child Window", this);
m_button->setFixedSize(150, 50);
m_button->move(50, 50);
// 连接按钮的槽函数
connect(m_button, &QPushButton::clicked, this, &ParentWindow::showChildWindow);
}
ParentWindow::~ParentWindow()
{
}
void ParentWindow::showChildWindow()
{
// 创建并显示新窗口
m_childWindow = new ChildWindow(this);
m_childWindow->show();
}
```
在父窗口的构造函数中创建按钮,并连接按钮的 `clicked` 信号到槽函数 `showChildWindow()`。在槽函数中,创建并显示新窗口。
新窗口的代码可以参考以下示例:
头文件:
```cpp
#ifndef CHILDWINDOW_H
#define CHILDWINDOW_H
#include <QWidget>
class ChildWindow : public QWidget
{
Q_OBJECT
public:
ChildWindow(QWidget *parent = nullptr);
~ChildWindow();
};
#endif // CHILDWINDOW_H
```
源文件:
```cpp
#include "childwindow.h"
ChildWindow::ChildWindow(QWidget *parent)
: QWidget(parent)
{
setFixedSize(300, 200);
setWindowTitle("Child Window");
}
ChildWindow::~ChildWindow()
{
}
```
在新窗口的构造函数中设置窗口大小和标题。