QtBase  v6.3.1
src_gui_dialogs_qfiledialog.cpp
Go to the documentation of this file.
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 
53  tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)"));
55 
56 
58 "Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
60 
61 
63 QFileDialog dialog(this);
66 
67 
69 dialog.setNameFilter(tr("Images (*.png *.xpm *.jpg)"));
71 
72 
76 
77 
80 if (dialog.exec())
83 
84 
86 dialog.setNameFilter("All C++ files (*.cpp *.cc *.C *.cxx *.c++)");
87 dialog.setNameFilter("*.cpp *.cc *.C *.cxx *.c++");
89 
90 
92 const QStringList filters({"Image files (*.png *.xpm *.jpg)",
93  "Text files (*.txt)",
94  "Any files (*)"
95  });
100 
101 
103 QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
104  "/home",
105  tr("Images (*.png *.xpm *.jpg)"));
107 
108 
111  this,
112  "Select one or more files to open",
113  "/home",
114  "Images (*.png *.xpm *.jpg)");
116 
117 
119 QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
120  "/home/jana/untitled.png",
121  tr("Images (*.png *.xpm *.jpg)"));
123 
124 
127  "/home",
131 
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();
142 
144 "Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
146 
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);
157 
159 QByteArray imageData; // obtained from e.g. QImage::save()
160 QFileDialog::saveFile("myimage.png", imageData);
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:85
virtual int exec()
Definition: qdialog.cpp:595
The QFileDialog class provides a dialog that allow users to select files or directories....
Definition: qfiledialog.h:64
static QString getExistingDirectory(QWidget *parent=nullptr, const QString &caption=QString(), const QString &dir=QString(), Options options=ShowDirsOnly)
static QString getSaveFileName(QWidget *parent=nullptr, const QString &caption=QString(), const QString &dir=QString(), const QString &filter=QString(), QString *selectedFilter=nullptr, Options options=Options())
void setNameFilters(const QStringList &filters)
static QString getOpenFileName(QWidget *parent=nullptr, const QString &caption=QString(), const QString &dir=QString(), const QString &filter=QString(), QString *selectedFilter=nullptr, Options options=Options())
void setViewMode(ViewMode mode)
QStringList selectedFiles() const
@ DontResolveSymlinks
Definition: qfiledialog.h:86
static void getOpenFileContent(const QString &nameFilter, const std::function< void(const QString &, const QByteArray &)> &fileContentsReady)
void setFileMode(FileMode mode)
void setNameFilter(const QString &filter)
static QStringList getOpenFileNames(QWidget *parent=nullptr, const QString &caption=QString(), const QString &dir=QString(), const QString &filter=QString(), QString *selectedFilter=nullptr, Options options=Options())
The QString class provides a Unicode character string.
Definition: qstring.h:388
The QStringList class provides a list of strings.
void saveFile(const char *content, size_t size, const std::string &fileNameHint)
#define tr(X)
QStringList mimeTypeFilters({"image/jpeg", "image/png", "application/octet-stream" })
[12]
QString dir
[11]
QByteArray imageData
[15]
XML files xml auto fileContentReady
[14]
QStringList fileNames
[4]
QFileDialog dialog(this)
[1]
QStringList files
[8]
const QStringList filters({"Image files (*.png *.xpm *.jpg)", "Text files (*.txt)", "Any files (*)" })
[6]