繁体   English   中英

如何轻松获得按钮在Qt / C ++中按下对话框

[英]How to easily get the button Press in a dialog box in Qt/C++

我写了一个应用程序,主要相当于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对我而言可能是完美的。

执行程序将显示对话框并等待用户操作。 如何轻松捕获返回值:取消,是,YesToAll,否,NoToAll

我正在寻找一个容易得到的。 我想避免使用signal / connecT在dialogoverwrite类中使用任何其他方法。 我真的只需要按钮值来做出反应。

非常感谢

用代表关闭按钮之一的值调用QDialog::done(int r) 该值由exec()返回。

默认值由QDialog::DialogCode枚举提供。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM