Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Qt customizing save file dialog

I need to customize default Qt save file dialog: add some options in it. For example, adding some checkboxes with my own values in it between file type and save/close buttons.

Have Qt any ways to do it?

like image 940
fryme Avatar asked Sep 15 '11 06:09

fryme


2 Answers

You can customize the Qt file dialog as long as you're okay with using the "non-native" Qt file dialog that comes with Qt; the other option Qt provides is to use the OS's native file dialog, but if you do that there is no way (that I'm aware of) to customize the dialog.

Here's an example of an enhanced file dialog class I wrote as part of an audio-format-conversion program:

AudioMove file dialog screenshot

The code is a bit dated and may need a bit of tweaking to work with newer versions of Qt (in particular in Qt 4.6 and higher you'll probably need to call setOption(DontUseNativeDialog) on your file dialog object, otherwise you'll get the native dialog and custom widgets won't appear under MacOS/X), but the source code for it can be found in the GitHub repository if you want to take a look.

like image 170
Jeremy Friesner Avatar answered Oct 23 '22 02:10

Jeremy Friesner


cfd.h

#include <QFileDialog>
#include <QPushButton>

class cfd : public QFileDialog
{
public:
    cfd();
};

cfd.cpp

#include "cfd.h"

cfd::cfd()
{
    ((QWidget*)this->children().at(3))->setFixedSize(200,200);
    (new QPushButton(this))->setFixedSize(300,30);
}

result

enter image description here

like image 38
TheHorse Avatar answered Oct 23 '22 02:10

TheHorse