Qt QFileSystemModel::filePath Segmentation fault



  • Hallo,

    ich möchte gerne die Funktion filePath vom QFileSystemModel nutzen. Sobald ich diese Funktion aufrufe, bekommen ich das mit einem Absturz meines Programms quittiert. Ich habe alles auf ein Minimum reduziert und der Fehler liegt eindeutig bei diesem Funktionsaufruf. Rufe ich dagegen fileName auf klappt alles wunderbar.

    Kennt wer das Problem, oder kann mir helfen?

    Header

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    #include <QFileSystemModel>
    
    namespace Ui {
    class MainWindow;
    }
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
    private slots:
        void on_pushButton_clicked();
    
    private:
        Ui::MainWindow *ui;
        QFileSystemModel *model;
    };
    
    #endif // MAINWINDOW_H
    

    Source

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    
        QFileSystemModel *model = new QFileSystemModel;
        model->setRootPath(QDir::currentPath());
        ui->treeView->setModel(model);
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    void MainWindow::on_pushButton_clicked()
    {
        QModelIndex index = ui->treeView->currentIndex();
        //model->fileName(index); // <---- kein Fehler
        model->filePath(index); // <----- Seg fault
    }
    


  • Ich habe den Fehler gefunden. QFileSystemModel *model wurde ja schon im Header deklariert, damit ich es überall nutzen kann. Ich habe das aber im Konstruktor überschrieben und das dann genutzt.



  • Wär auch nicht schlecht, wenn du das Model irgendwann auch löschen würdest, z.B. indem du im Konstruktor einen Parent übergibst.



  • Danke für den Tipp.


Anmelden zum Antworten