FileDialogTest.pro
QT += gui
TEMPLATE = app
TARGET = FileDialogTest
HEADERS += FileDialogTest.h
SOURCES += main.cpp
QT += gui
TEMPLATE = app
TARGET = FileDialogTest
HEADERS += FileDialogTest.h
SOURCES += main.cpp
To copy to clipboard, switch view to plain text mode
main.cpp
#include <QApplication>
#include "FileDialogTest.h"
int main(int argc, char* argv[])
{
FileDialogTest fileDialogTest;
fileDialogTest.show();
return app.exec();
}
#include <QApplication>
#include "FileDialogTest.h"
int main(int argc, char* argv[])
{
QApplication app(argc, argv);
FileDialogTest fileDialogTest;
fileDialogTest.show();
return app.exec();
}
To copy to clipboard, switch view to plain text mode
FileDialogTest.h
#ifndef FILE_DIALOG_TEST
#define FILE_DIALOG_TEST
#include <QDialog>
#include <QFileDialog>
#include <QVBoxLayout>
#include <QPushButton>
#include <QLabel>
#include <QCheckBox>
class FileDialogTest
: public QDialog{
Q_OBJECT
public:
{
useNativeDialog
= new QCheckBox("Use native dialog");
dialogType
= new QLabel("DontUseNativeDialog = ?");
connect(createFileDialog_btn, SIGNAL(clicked()), this, SLOT(createFileDialog()));
main_layout->addWidget(createFileDialog_btn);
main_layout->addWidget(useNativeDialog);
main_layout->addWidget(dialogType);
}
private slots:
void createFileDialog()
{
if (useNativeDialog->isChecked())
dialog.
setOption(QFileDialog::DontUseNativeDialog,
false);
else
dialog.
setOption(QFileDialog::DontUseNativeDialog,
true);
dialogType
->setText
(QString("DontUseNativeDialog = %1").
arg(dialog.
testOption(QFileDialog::DontUseNativeDialog)));
dialog.exec();
}
private:
};
#endif // FILE_DIALOG_TEST
#ifndef FILE_DIALOG_TEST
#define FILE_DIALOG_TEST
#include <QDialog>
#include <QFileDialog>
#include <QVBoxLayout>
#include <QPushButton>
#include <QLabel>
#include <QCheckBox>
class FileDialogTest : public QDialog
{
Q_OBJECT
public:
FileDialogTest(QWidget* parent = 0) : QDialog(parent)
{
QVBoxLayout* main_layout = new QVBoxLayout(this);
QPushButton* createFileDialog_btn = new QPushButton("Open file");
useNativeDialog = new QCheckBox("Use native dialog");
dialogType = new QLabel("DontUseNativeDialog = ?");
connect(createFileDialog_btn, SIGNAL(clicked()), this, SLOT(createFileDialog()));
main_layout->addWidget(createFileDialog_btn);
main_layout->addWidget(useNativeDialog);
main_layout->addWidget(dialogType);
}
private slots:
void createFileDialog()
{
QFileDialog dialog(this);
dialog.setOption(QFileDialog::ShowDirsOnly);
if (useNativeDialog->isChecked())
dialog.setOption(QFileDialog::DontUseNativeDialog, false);
else
dialog.setOption(QFileDialog::DontUseNativeDialog, true);
dialogType->setText(QString("DontUseNativeDialog = %1").arg(dialog.testOption(QFileDialog::DontUseNativeDialog)));
dialog.exec();
}
private:
QCheckBox* useNativeDialog;
QLabel* dialogType;
};
#endif // FILE_DIALOG_TEST
To copy to clipboard, switch view to plain text mode
On my system (Windows XP SP3) the type of the dialog is the same - Qt file dialog - even though in the first case (default, when the state of the checkbox is unchecked) the label shows 1 and in the second it shows 0.
So what's wrong with this code? (Remember, I'm a newbie)
Bookmarks