summaryrefslogtreecommitdiffstats
path: root/src/widgets/doc/snippets/code/src_gui_dialogs_qmessagebox.cpp
blob: dffc78db43e8604e60a3c74666bf27501df9b341 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause

#include <QWidget>
#include <QAbstractButton>
#include <QPushButton>

//! [4]
#include <QApplication>
#include <QMessageBox>

int main(int argc, char *argv[])
{
    QT_REQUIRE_VERSION(argc, argv, "4.0.2")

    QApplication app(argc, argv);
    //...
    return app.exec();
}
//! [4]

class MyWidget : public QWidget
{
    Q_OBJECT
public:
    void QMessageBoxExample(QWidget &myWidget);
};

void MyWidget::QMessageBoxExample(QWidget &myWidget)
{
    {
        //! [0]
        int ret = QMessageBox::warning(this, tr("My Application"),
                                       tr("The document has been modified.\n"
                                          "Do you want to save your changes?"),
                                       QMessageBox::Save | QMessageBox::Discard
                                       | QMessageBox::Cancel,
                                       QMessageBox::Save);
        //! [0]
    }

    {
        //! [2]
        QMessageBox msgBox(this);
        QPushButton *connectButton = msgBox.addButton(tr("Connect"), QMessageBox::ActionRole);
        QPushButton *abortButton = msgBox.addButton(QMessageBox::Abort);

        msgBox.exec();

        if (msgBox.clickedButton() == connectButton) {
            // connect
        } else if (msgBox.clickedButton() == abortButton) {
            // abort
        }
        //! [2]
    }

    {
        //! [3]
        QMessageBox messageBox(this);
        QAbstractButton *disconnectButton =
              messageBox.addButton(tr("Disconnect"), QMessageBox::ActionRole);
        //...
        messageBox.exec();
        if (messageBox.clickedButton() == disconnectButton) {
            //...
        }
        //! [3]
    }

    {
        //! [5]
        QMessageBox msgBox(this);
        msgBox.setText("The document has been modified.");
        msgBox.exec();
        //! [5]
    }

    {
        //! [6]
        QMessageBox msgBox(this);
        msgBox.setText("The document has been modified.");
        msgBox.setInformativeText("Do you want to save your changes?");
        msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
        msgBox.setDefaultButton(QMessageBox::Save);
        int ret = msgBox.exec();
        //! [6]
    }

    {
        int ret;

        //! [7]
        switch (ret) {
            case QMessageBox::Save:
                // Save was clicked
                break;
            case QMessageBox::Discard:
                // Don't Save was clicked
                break;
            case QMessageBox::Cancel:
                // Cancel was clicked
                break;
            default:
                // should never be reached
                break;
        }
        //! [7]
    }
}