1 /****************************************************************************
2 **
3 ** Copyright (C) 2016 The Qt Company Ltd.
4 ** Contact: https://www.qt.io/licensing/
5 **
6 ** This file is part of the documentation of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:BSD$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and The Qt Company. For licensing terms
14 ** and conditions see https://www.qt.io/terms-conditions. For further
15 ** information use the contact form at https://www.qt.io/contact-us.
16 **
17 ** BSD License Usage
18 ** Alternatively, you may use this file under the terms of the BSD license
19 ** as follows:
20 **
21 ** "Redistribution and use in source and binary forms, with or without
22 ** modification, are permitted provided that the following conditions are
23 ** met:
24 ** * Redistributions of source code must retain the above copyright
25 ** notice, this list of conditions and the following disclaimer.
26 ** * Redistributions in binary form must reproduce the above copyright
27 ** notice, this list of conditions and the following disclaimer in
28 ** the documentation and/or other materials provided with the
29 ** distribution.
30 ** * Neither the name of The Qt Company Ltd nor the names of its
31 ** contributors may be used to endorse or promote products derived
32 ** from this software without specific prior written permission.
33 **
34 **
35 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
36 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
37 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
38 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
39 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
42 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
43 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
44 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
45 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
46 **
47 ** $QT_END_LICENSE$
48 **
49 ****************************************************************************/
50
51 //! [0]
52 fileName = QFileDialog::getOpenFileName(this,
53 tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)"));
54 //! [0]
55
56
57 //! [1]
58 "Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
59 //! [1]
60
61
62 //! [2]
63 QFileDialog dialog(this);
64 dialog.setFileMode(QFileDialog::AnyFile);
65 //! [2]
66
67
68 //! [3]
69 dialog.setNameFilter(tr("Images (*.png *.xpm *.jpg)"));
70 //! [3]
71
72
73 //! [4]
74 dialog.setViewMode(QFileDialog::Detail);
75 //! [4]
76
77
78 //! [5]
79 QStringList fileNames;
80 if (dialog.exec())
81 fileNames = dialog.selectedFiles();
82 //! [5]
83
84
85 //! [6]
86 dialog.setNameFilter("All C++ files (*.cpp *.cc *.C *.cxx *.c++)");
87 dialog.setNameFilter("*.cpp *.cc *.C *.cxx *.c++");
88 //! [6]
89
90
91 //! [7]
92 const QStringList filters({"Image files (*.png *.xpm *.jpg)",
93 "Text files (*.txt)",
94 "Any files (*)"
95 });
96 QFileDialog dialog(this);
97 dialog.setNameFilters(filters);
98 dialog.exec();
99 //! [7]
100
101
102 //! [8]
103 QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
104 "/home",
105 tr("Images (*.png *.xpm *.jpg)"));
106 //! [8]
107
108
109 //! [9]
110 QStringList files = QFileDialog::getOpenFileNames(
111 this,
112 "Select one or more files to open",
113 "/home",
114 "Images (*.png *.xpm *.jpg)");
115 //! [9]
116
117
118 //! [11]
119 QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
120 "/home/jana/untitled.png",
121 tr("Images (*.png *.xpm *.jpg)"));
122 //! [11]
123
124
125 //! [12]
126 QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
127 "/home",
128 QFileDialog::ShowDirsOnly
129 | QFileDialog::DontResolveSymlinks);
130 //! [12]
131
132 //! [13]
133 QStringList mimeTypeFilters({"image/jpeg", // will show "JPEG image (*.jpeg *.jpg *.jpe)
134 "image/png", // will show "PNG image (*.png)"
135 "application/octet-stream" // will show "All files (*)"
136 });
137
138 QFileDialog dialog(this);
139 dialog.setMimeTypeFilters(mimeTypeFilters);
140 dialog.exec();
141 //! [13]
142
143 //! [14]
144 "Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
145 //! [14]
146
147 //! [15]
__anonb49683b70102(const QString &fileName, const QByteArray &fileContent) 148 auto fileContentReady = [](const QString &fileName, const QByteArray &fileContent) {
149 if (fileName.isEmpty()) {
150 // No file was selected
151 } else {
152 // Use fileName and fileContent
153 }
154 };
155 QFileDialog::getOpenFileContent("Images (*.png *.xpm *.jpg)", fileContentReady);
156 //! [15]
157
158 //! [16]
159 QByteArray imageData; // obtained from e.g. QImage::save()
160 QFileDialog::saveFile("myimage.png", imageData);
161 //! [16]
162