#include #include #include #include #include class Dialog : public QDialog { Q_OBJECT public: Dialog(QWidget *parent = 0) : QDialog(parent) { int frameStyle = QFrame::Sunken | QFrame::Panel; openFileNameLabel = new QLabel; openFileNameLabel->setFrameStyle(frameStyle); QPushButton *openFileNameButton = new QPushButton(tr("QFileDialog::get&OpenFileName()")); connect(openFileNameButton, SIGNAL(clicked()), this, SLOT(setOpenFileName())); native = new QCheckBox(this); native->setText("Use native file dialog."); native->setChecked(false); resolveSymLinks = new QCheckBox(this); resolveSymLinks->setText("Set resolve SymLinks"); resolveSymLinks->setChecked(false); QGridLayout *layout = new QGridLayout; layout->setColumnStretch(1, 1); layout->setColumnMinimumWidth(1, 250); layout->addWidget(openFileNameButton, 0, 0); layout->addWidget(openFileNameLabel, 0, 1); layout->addWidget(native, 1, 0); layout->addWidget(resolveSymLinks, 2, 0); setLayout(layout); setWindowTitle(tr("Standard Dialogs")); } private slots: void setOpenFileName() { QFileDialog::Options options; if (!native->isChecked()) options |= QFileDialog::DontUseNativeDialog; if (!resolveSymLinks->isChecked()) options |= QFileDialog::DontResolveSymlinks; QString selectedFilter; QString fileName = QFileDialog::getOpenFileName(this, tr("QFileDialog::getOpenFileName()"), openFileNameLabel->text(), tr("All Files (*);;Text Files (*.txt)"), &selectedFilter, options); if (!fileName.isEmpty()) { if (resolveSymLinks->isChecked()) { QFileInfo info(fileName); openFileNameLabel->setText(info.canonicalFilePath()); } else { openFileNameLabel->setText(fileName); } } } private: QCheckBox *native, *resolveSymLinks; QLabel *openFileNameLabel; }; #include "main.moc" int main(int argc, char *argv[]) { QApplication app(argc, argv); QString translatorFileName = QLatin1String("qt_"); translatorFileName += QLocale::system().name(); QTranslator *translator = new QTranslator(&app); if (translator->load(translatorFileName, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) app.installTranslator(translator); Dialog dialog; return dialog.exec(); }