qt点击按钮弹出另外一个窗口
时间: 2025-06-09 11:35:24 浏览: 21
### 实现点击按钮后弹出新窗口功能
为了实现在Qt中当用户点击按钮时打开一个新的窗口,可以基于`QWidget`类构建主界面,并定义一个槽函数用于创建并显示新的对话框实例。下面是一个完整的例子说明如何做到这一点。
#### 主窗体代码示例
```cpp
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QVBoxLayout>
class MainWindow : public QWidget {
public:
MainWindow() {
QVBoxLayout* layout = new QVBoxLayout(this);
QPushButton* openDialogButton = new QPushButton("Open Dialog", this);
connect(openDialogButton, &QPushButton::clicked, this, &MainWindow::on_openDialogClicked);
layout->addWidget(new QLabel("Main Window"));
layout->addWidget(openDialogButton);
}
private slots:
void on_openDialogClicked() {
QDialog dialog;
dialog.setWindowTitle("New Dialog");
QPushButton* okButton = new QPushButton("OK", &dialog);
okButton->setDefault(true); // 设置为默认按钮
QPushButton* cancelButton = new QPushButton("Cancel", &dialog);
cancelanceButton->setGeometry(50, 50, 100, 50);
dialog.resize(300, 100);
dialog.exec(); // 使用 exec 显示模态对话框
}
};
```
上述代码展示了如何建立一个带有按钮的主窗口[^1]。 当按下此按钮(`openDialogButton`)时会触发`on_openDialogClicked()`方法,在该方法内部创建了一个名为`dialog`的新对话框对象,并设置了其标题以及两个按钮——一个是确认按钮(设定了作为默认选项),另一个是取消按钮[^2]。最后调用了`exec()`函数使得这个对话框以模式方式展现出来[^2]。
需要注意的是这里使用了`QDialog`来表示新开的小型窗口而不是再次利用`QWidget`,因为对于临时性的交互操作来说前者更为合适;而且通过`exec()`而非`show()`可以让它成为阻塞式的等待关闭前不会返回控制权给父级组件。
阅读全文
相关推荐


















