【发布时间】:2020-08-13 12:12:22
【问题描述】:
我需要绑定对话框,以便从主窗口打开“first_dialog”窗口,并带有两个按钮“ok”和“close”。单击“关闭”只会关闭窗口。单击“确定”应打开“second_dialog”,同时带有两个按钮“确定”和“关闭”。单击“关闭”将关闭“second_dialog”。如果你点击“ok”,那么“second_dialog”和“first_dialog”将被关闭,但应该调用主窗口槽。如何正确地做到这一点,草拟了一个例子。我尝试与destroyed () 信号绑定并编写自己的信号,但程序遇到了分段错误。
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
first_dialog* a= new first_dialog(this);
//connect(a,SIGNAL(...),this,SLOT(new_button));
a->exec();
}
#include "first_dialog.h"
#include "ui_first_dialog.h"
first_dialog::first_dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::first_dialog)
{
ui->setupUi(this);
}
first_dialog::~first_dialog()
{
delete ui;
}
void first_dialog::on_pushButton_clicked()
{
second_dialog* a =new second_dialog(this);
//connect(a,SIGNAL(...),this,SLOT(...));
a->exec();
}
void first_dialog::on_pushButton_2_clicked()
{
this->close();
}
#include "second_dialog.h"
#include "ui_second_dialog.h"
second_dialog::second_dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::second_dialog)
{
ui->setupUi(this);
}
second_dialog::~second_dialog()
{
delete ui;
}
void second_dialog::on_pushButton_2_clicked()
{
this->close();
}
void second_dialog::on_pushButton_clicked()
{
//....
}
【问题讨论】:
-
如果您需要帮助,您需要提供带有完整代码的最小工作示例,而不仅仅是 sn-ps
标签: c++ windows qt qt-creator qdialog