QListView mit ItemModel nach Art "Simple Tree Model Exa

Alles rund um die Programmierung mit Qt
Antworten
pinktroll
Beiträge: 10
Registriert: 23. Oktober 2004 19:52
Wohnort: bei München
Kontaktdaten:

QListView mit ItemModel nach Art "Simple Tree Model Exa

Beitrag von pinktroll »

Hallo,

Ich habe mir das "Simple Tree Model Example" aus dem Qt-Assistenten herauskopiert und ein eigenes Progrämmchen von erstellt. Diese Version funktioniert einwandfrei.
Nun habe ich mit dem Designer ein Widget (QWidget als Vorlage) erstellt und darauf eine QTreeView gesetzt.
Dieser QTreeView übergebe ich im Konstruktor nun das ItemModel aus dem Beispiel.
Es wird aber nichts angezeigt, nicht einmal der Header.. Wo liegt mein Denkfehler?



Vielen Dank!

Martin

Hier der Konstruktor:

Code: Alles auswählen

  setupUi(this); 
  QFile file("default.txt");
  file.open(QIODevice::ReadOnly);
  TreeModel model(file.readAll());
  file.close();
  treeviewAufWidget->setModel(&modell);
-----------------------------------------------------------------------------------
Beati pauperes spiritu
-----------------------------------------------------------------------------------
medi
Beiträge: 16
Registriert: 2. März 2006 13:25

versuche folgendes

Beitrag von medi »

Hallo Martin,

Es funktioniert. Ich habe TEST_treeView aber in einem MainWidget erzeugt. Trotzdem versuche doch mal folgendes Beispiel.

Tschau Annett

main.cpp

Code: Alles auswählen

#include "test.h"
int main(int argc, char *argv[])
{
	QApplication app(argc, argv);
	test *Main = new test();
	Main->showMaximized(); 
	return app.exec();
}
test.cpp

Code: Alles auswählen

#include "test.h"
test::
test(QWidget *parent): QMainWindow(parent)
{
   setupUi(this);

	QFile file("default.txt");
	if (!file.open(QIODevice::ReadOnly))
	{
		printf("kann das File nicht öffnen \n");
		QMessageBox::warning(0, file.errorString(), "kann das File nicht öffnen");
	}

	MyFirstTreeModel *model = new MyFirstTreeModel(file.readAll());
	file.close();

   TEST_treeView->setModel(model);

}

test::
~test()
{

}
test.h

Code: Alles auswählen

#ifndef TEST_H_
#define TEST_H_

#include "ui_test.h"

class test : public QMainWindow, private Ui::test
{
public:
 test(QWidget *parent = 0);
~test();

};

#endif
pinktroll
Beiträge: 10
Registriert: 23. Oktober 2004 19:52
Wohnort: bei München
Kontaktdaten:

Beitrag von pinktroll »

Hallo Annett,

vielen Dank für deine Hilfe. Mittlerweile ha ich meinen Fauxpas gefunden. Ich habe mein Model im Konstruktor deklariert und initialisiert. Nach dem verlassen des Konstruktors is das Model als lokal Variable natürlich weg.. :oops:
Komisch nur, dass es funktioniert, das Model in der main() zu deklarieren, initialisieren und in nem QWidget anzuzeigen... :?

Tschau Martin
-----------------------------------------------------------------------------------
Beati pauperes spiritu
-----------------------------------------------------------------------------------
Antworten