Probleme mit QDir /Qfiledialog in Verbindung m. QTreewidget

Alles rund um die Programmierung mit Qt
Antworten
timo_81
Beiträge: 20
Registriert: 6. September 2008 10:08

Probleme mit QDir /Qfiledialog in Verbindung m. QTreewidget

Beitrag von timo_81 »

Hallo werte Qt-Gemeinde!

Ich habe mich einer längeren programmierfreien Zeit, an ein QT-Projekt rangewagt. Es soll ein Tool werden mit dem man Quellcode Dateien von
unnützen #include Direktiven säubern kann.

Da aller Anfang schwer ist, gibt es schon mit der Pröäsentation der Daten ein Problem:

Nach Betätigen eines Knopfes, soll ein QFileDialog erscheinen, mit dem man
ein Projektverzeichnis auswählt. Danach soll das Verzeichnis und die Daten in eine Baumansicht geladen werden, wobei es ungefähr die Struktur des
QtCreators nachahmen soll.

Die Gui wurde im Designer erstellt, die ui Datei ist auch als .h vorhanden.
Möchte ich nun einen simplen Text in die Baumansicht einfügen, geht dies ohne Probleme.
Nur das gewählte Verzeichnis und die SourceDateien werfen einen Compilerfehler aus der wie folge lautet:

error: no matching function for call to 'QTreeWidgetItem::setText(int, QStringList)'


Anbei die Code Dateien:

mainwindow.h

Code: Alles auswählen

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QDir>



namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

protected:
    void changeEvent(QEvent *e);




private:
    Ui::MainWindow *ui;
    QDir directory;

private slots:
    void changeDirectory();
    void fillDirTree();

};

#endif // MAINWINDOW_H
main.cpp

Code: Alles auswählen

#include <QtGui/QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
#if defined(Q_WS_S60)
    w.showMaximized();
#else
    w.show();
#endif
    return a.exec();
}

und nun die Datei die den Fehler auswirft:

mainwindow.cpp

Code: Alles auswählen

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFileDialog>
#include <QTreeWidgetItem>
#include <QFileSystemModel>


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect(ui->qButtonLoad,SIGNAL(clicked()), this, SLOT(changeDirectory()));
    fillDirTree();

}


MainWindow::~MainWindow()
{
    delete ui;
}




void MainWindow::changeEvent(QEvent *e)
{
    QMainWindow::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        ui->retranslateUi(this);
        break;
    default:
        break;
    }

}



void MainWindow::changeDirectory()
{
/* select a directory using file dialog */
    QString path = QFileDialog::getExistingDirectory (this, tr("Projektordner"), directory.path());


    if ( path.isNull() == false )
    {
        directory.setPath(path);
        fillDirTree();
    }

}

void MainWindow::fillDirTree()
{



    QTreeWidgetItem *qtFileDir = new QTreeWidgetItem(ui->qTreeDir);
    qtFileDir->setText( 0, directory.currentPath());
    QTreeWidgetItem *qtFiles= new QTreeWidgetItem(qtFileDir);
    
    // directory.entryList() ergibt den Fehler!
    qtFiles->setText( 0,directory.entryList());



}
die vom Designer generierten Dateien kann ich noch nachliefern, falls Bedarf besteht.
Mit einem Listwidget geht es auch. Nur das Treewidget stellt sich wuer.

Das Treewidget aus dem Designer hat den Name qTreeDir


Vielen Dank für mögliche Hilfestellungen
Schön mal wieder hier zu sein ;)
Schönen Tag
Timo
Gruß und vielen Dank -Timo-
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

entryList gibt eine Liste zurück und setText erwartet nur einen QString. Steht auch schon in der Fehlermeldung.
timo_81
Beiträge: 20
Registriert: 6. September 2008 10:08

Beitrag von timo_81 »

Hallo,
vielen Dank für die schnelle Antwort.
Wie gehe ich nun am Besten vor?
Kann man da eine Umwandlung machen?

Geht das mit QDir überhaupt nicht?
Gruß und vielen Dank -Timo-
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Der Unterschied zwischen einer String-Liste und einem String sollte dir eigentlich schon bekannt sein.
Antworten