Qt中利用槽函数从一个对话框中调用另一个对话框 完整代码
时间: 2023-12-14 17:36:16 浏览: 75
QT自定义对话框及采用信号槽机制与主窗口交互的应用程序示例
以下是一个简单的示例代码,演示了如何使用Qt中的槽函数从一个对话框中打开另一个对话框:
```
// mainwindow.h
#include <QMainWindow>
#include "dialog.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
Dialog *dialog;
};
```
```
// mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
dialog = new Dialog(this); // 创建新的对话框
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
dialog->show(); // 显示新的对话框
}
```
```
// dialog.h
#include <QDialog>
namespace Ui {
class Dialog;
}
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = nullptr);
~Dialog();
private:
Ui::Dialog *ui;
};
```
```
// dialog.cpp
#include "dialog.h"
#include "ui_dialog.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
}
Dialog::~Dialog()
{
delete ui;
}
```
在这个示例中,我们在 `MainWindow` 类中创建了一个新的 `Dialog` 对象,并在 `on_pushButton_clicked` 槽函数中调用了 `dialog->show()`,以显示新的对话框。
注意,我们在 `MainWindow` 类的头文件中包含了 `dialog.h`,以便我们可以在 `MainWindow` 类中访问 `Dialog` 类。同样地,在 `Dialog` 类的头文件中包含了 `mainwindow.h`,以便我们可以在 `Dialog` 类中访问 `MainWindow` 类(如果需要的话)。
阅读全文