In this lesson we will learn how to use QFileDialog in qt.
The QFileDialog class provides a dialog that allow users to select files or directories.
First lets see how to use static function QFileDialog::getOpenFileNames
Basic syntax of QFileDialog::getOpenFileNames
[static] QStringList QFileDialog::getOpenFileNames(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options options = Options())
This is a convenience static function that will return one or more existing files selected by the user.
QStringList files = QFileDialog::getOpenFileNames( this, "Select one or more files to open", "/home", "Images (*.png *.xpm *.jpg)");
Now Lets create a Program and see how we can use QFileDialog::getOpenFileNames in practice
File->New File or Project…
Applications->Qt Gui Application->Choose…
We keep the class as MainWindow as given by default.
Now write the code below in main.cpp
#include <QApplication> #include <QFileDialog> #include <QDebug> class QFileDialogTester : public QWidget { public: void openFile() { QStringList filename = QFileDialog::getOpenFileNames( this, "Open Document", QDir::currentPath(), "All files (*.*) ;; Document files (*.doc *.rtf);; PNG files (*.png)"); if( !filename.isEmpty() ) { qDebug() << "selected file paths : " << filename.join(",").toUtf8(); } } }; int main( int argc, char **argv ) { QApplication app( argc, argv ); QFileDialogTester test; test.openFile(); return 0; }
Now build and run the program.
After selecting the file using open file dialog this code will print the paths of the selected files in console.
OUTPUT
selected file path : "your/project/dir/coffee-cup-icon.png", selected file path : "your/project/dir/main.o", selected file path : "your/project/dir/Sample.exe"
Leave a Reply