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