我写了一个应用程序,主要是相当于mac osx finder。将文件复制到文件夹时,我正在检查是否已存在同名文件。如果它存在,我问用户是否要取消,覆盖或不覆盖。
使用QT设计器创建了覆盖的对话框,并生成了dialogoverwrite.ui,.cpp和.h。
用户界面
dialogoverwrite.cpp
#include <QDialogButtonBox>
#include "dialogoverwrite.h"
#include "ui_dialogoverwrite.h"
DialogOverwrite::DialogOverwrite(QWidget *parent) :
QDialog(parent),
ui(new Ui::DialogOverwrite)
{
ui->setupUi(this);
}
DialogOverwrite::~DialogOverwrite()
{
delete ui;
}
dialogoverwrite.h
#include <QDialog>
#include <QDialogButtonBox>
namespace Ui {
class DialogOverwrite;
}
class DialogOverwrite : public QDialog
{
Q_OBJECT
public:
explicit DialogOverwrite(QWidget *parent = 0);
~DialogOverwrite();
private:
Ui::DialogOverwrite *ui;
};
我在My TreeWidget应用程序中使用此类,如下所示,我只会添加所需的代码
DialogOverwrite *OverwriteDialog = new DialogOverwrite;
OverwriteDialog->exec();
一种OverwriteDialog.button.value对我来说非常适合。
exec将显示对话框并等待用户操作。如何轻松捕获返回值:取消,是,YesToAll,No,NoToAll
我正在寻找一个容易得到它。我想避免在带有signal / connecT的dialogoverwrite类中使用任何其他方法。我真的只需要按钮值来做出反应。
非常感谢
答案 0 :(得分:0)
使用代表其中一个结束按钮的值调用QDialog::done(int r)
。该值由exec()
返回。
默认值由QDialog::DialogCode
enum。