~ba
Cadet 2nd Year
- Registriert
- Dez. 2010
- Beiträge
- 24
Hallo,
ich habe folgendes Problem: Ich möchte mit einer Qt-GUI einige Dateien einlesen, und diese dann im Programm in einem QTreeWidget bzw. einer QTreeView anzeigen lassen. Jedoch liest QFileDialog::getOpenFileNames() die Dateien als QStringList ein, die ich zwar in einem QListWidget (bzw. QListView) anzeigen kann, mein QTreeWidget allerdings damit nichts anfangen kann.
Nun habe ich versucht, die QStringList mittels QTreeWidgetItem() in eine Liste mit dem Typ QTreeWidgetItem zu verwandeln und diese dann darstellen zu lassen, was aber auch nur mäßigen Erfolg gezeigt hat, weil jetzt jedes Element nicht in einer neuen Zeile, sondern in einer neuen Spalte angezeigt wird, das heißt, es gibt nur eine Zeile.
Wenn ich die QStringList hingegen nicht verändere, und mit einem QListWidget die Funktion QListWidget::addItem() verwende, funktioniert es so, wie ich es haben möchte.
Wie bekomme ich es also hin, dass jedes Element der Liste der eingelesenen Dateien in einer neuen Zeile, quasi als eigenständiges Element, angezeigt wird? Ich vermute, dass ich hierzu die Methode void QTreeWidget::addTopLevelItems ( const QList<QTreeWidgetItem *> & items ) benutzen muss, allerdings verstehe ich den angegebenen Datentyp „QList<QTreeWidgetItem *>“ nicht.
In diesem Zusammenhang habe ich auch das Thema „Model/View programming“ gefunden, daher auch die gedoppelten Angaben im Titel und im ersten Absatz; hilft mir das weiter, oder sollte ich lieber die Finger davon lassen?
Vielen Dank im Voraus für erhellende Antworten.
ich habe folgendes Problem: Ich möchte mit einer Qt-GUI einige Dateien einlesen, und diese dann im Programm in einem QTreeWidget bzw. einer QTreeView anzeigen lassen. Jedoch liest QFileDialog::getOpenFileNames() die Dateien als QStringList ein, die ich zwar in einem QListWidget (bzw. QListView) anzeigen kann, mein QTreeWidget allerdings damit nichts anfangen kann.
Nun habe ich versucht, die QStringList mittels QTreeWidgetItem() in eine Liste mit dem Typ QTreeWidgetItem zu verwandeln und diese dann darstellen zu lassen, was aber auch nur mäßigen Erfolg gezeigt hat, weil jetzt jedes Element nicht in einer neuen Zeile, sondern in einer neuen Spalte angezeigt wird, das heißt, es gibt nur eine Zeile.
Wenn ich die QStringList hingegen nicht verändere, und mit einem QListWidget die Funktion QListWidget::addItem() verwende, funktioniert es so, wie ich es haben möchte.
Code:
void MainWindow::on_hinzufuegenButton_clicked()
{
QStringList readFilesListe = QFileDialog::getOpenFileNames(
this,
"Dateien hinzufügen...",
"/",
""
);
QTreeWidgetItem* readFiles = new QTreeWidgetItem(readFilesListe);
ui->readFilesTreeWidget->addTopLevelItem(readFiles);
}
Wie bekomme ich es also hin, dass jedes Element der Liste der eingelesenen Dateien in einer neuen Zeile, quasi als eigenständiges Element, angezeigt wird? Ich vermute, dass ich hierzu die Methode void QTreeWidget::addTopLevelItems ( const QList<QTreeWidgetItem *> & items ) benutzen muss, allerdings verstehe ich den angegebenen Datentyp „QList<QTreeWidgetItem *>“ nicht.
In diesem Zusammenhang habe ich auch das Thema „Model/View programming“ gefunden, daher auch die gedoppelten Angaben im Titel und im ersten Absatz; hilft mir das weiter, oder sollte ich lieber die Finger davon lassen?
Vielen Dank im Voraus für erhellende Antworten.