簡體   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