void Dialog::on_button_1_clicked() { QFileDialog d; //enum ViewMode { Detail, List }; d.setViewMode(QFileDialog::Detail); //enum FileMode { AnyFile, ExistingFile, Directory, ExistingFiles, DirectoryOnly }; d.setFileMode(QFileDialog::ExistingFiles); //enum AcceptMode { AcceptOpen, AcceptSave }; d.setAcceptDrops(QFileDialog::AcceptOpen); //enum Option { ShowDirsOnly, DontResolveSymlinks, DontConfirmOverwrite, DontUseSheet, DontUseNativeDialog, ReadOnly, HideNameFilterDetails } d.setOptions(QFileDialog::ReadOnly); d.exec(); std::stringstream s; if (d.result() == QDialog::Accepted) { s << "Number of files selected: " << d.selectedFiles().size() << '\n'; const auto v = d.selectedFiles(); for (auto f: v) s << f.toStdString() << '\n'; } else { assert(d.result() == QDialog::Rejected); s << "Dialog closed with cancel or close\n"; } ui->text_1->setPlainText(s.str().c_str()); }
int main(int argc, char *argv[]) { QApplication a(argc, argv); QFileDialog d; //enum ViewMode { Detail, List }; d.setViewMode(QFileDialog::Detail); //enum FileMode { AnyFile, ExistingFile, Directory, ExistingFiles, DirectoryOnly }; d.setFileMode(QFileDialog::AnyFile); //enum AcceptMode { AcceptOpen, AcceptSave }; d.setAcceptDrops(QFileDialog::AcceptSave); //enum Option { ShowDirsOnly, DontResolveSymlinks, DontConfirmOverwrite, DontUseSheet, DontUseNativeDialog, ReadOnly, HideNameFilterDetails } //Without QFileDialog::DontUseNativeDialog there will not be an edit box to supply //a filename, under Lubuntu 13.04 (raring) d.setOptions(QFileDialog::DontUseNativeDialog); d.setWindowTitle("Save"); //Otherwise it states 'Open' d.exec(); if (d.result() == QDialog::Accepted) { std::cout << "Number of files selected: " << d.selectedFiles().size() << '\n'; const auto v = d.selectedFiles(); for (auto s: v) std::cout << s.toStdString() << '\n'; } else { assert(d.result() == QDialog::Rejected); std::cout << "Dialog closed with cancel or close\n"; } }