QFileDialog aus seperatem Fenster öffnen

Alles rund um die Programmierung mit Qt
Antworten
anno1988
Beiträge: 280
Registriert: 23. Januar 2009 20:49

QFileDialog aus seperatem Fenster öffnen

Beitrag von anno1988 »

Hallo,

ich habe da ein kleines Problem.

Ich habe mir eine QDialog Klasse erstellt und darin einige Steuerelemente untergebracht. Jetzt wollte ich da drin, sobald ich auf einen PushButton klicke den QFileDialog öffnen. Allerdings wird das nicht angenommen und die Anwendung gibt folgende Meldung aus:

Code: Alles auswählen


QDialog::exec: Recursive call detected


Code:

Code: Alles auswählen

#include <QDialog>
#include <QFileDialog>


namespace Ui {

    class Dialog;

}


class Dialog : public QDialog {

    Q_OBJECT

    private:
        Ui::Dialog_Page_Item *ui;

    protected:
        QFileDialog *mfile_dialog;

    public:
        Dialog(QWidget *parent = 0);
        ~Dialog();

    protected slots:
        void FileSelected();

};



//--------------------------------------------------------

    Dialog::Dialog(QWidget *parent) :
                                        QDialog(parent), ui(new Ui::Dialog_Page_Item) {

        ui->setupUi(this);


        mfile_dialog = new QFileDialog();

        connect(ui->mpbtn_file_dialog, SIGNAL(clicked()), this, SLOT(FileSelected()));


    }

//--------------------------------------------------------

    Dialog::~Dialog() {

        delete ui;

    }

//--------------------------------------------------------

    void Dialog::FileSelected() {

        mfile_dialog->exec();

    }
Und der FileDialog wird dann auch nicht geöffnet.

Hat da jemand eine Idee wie man das machen kann?
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Beitrag von Troll.Soft »

Hallo Anno,
wenn Du den QFileDialog wie folgt aufrufst, dürfte es kein recursiven Probleme geben.

Code: Alles auswählen

	QString FileName =  QFileDialog::getOpenFileName(Widget, QString("Open SQLite Database"), Dir, QString("SQLite Files (*.sqlite);;All Files (*.*)"));
tschüß
Troll.Soft
Antworten