Seite 1 von 1

[4.2.3] QListWidget spinnt

Verfasst: 12. Mai 2007 11:50
von Vic
Hallo allerseits!

Ich habe mir ein kleines Widget geschrieben, dass ein QLabel und ein QListWidget beinhaltet. Eigentlich recht unspäktakulär.

Das ganze funktioniert soweit auch alles, sofern ich mein Widget nur einmal in meiner GUI erstelle. Jedoch kann ich die einzelnen Elemente des zuerst erstellten Listenfeldes nicht mehr mit der Maus anklicken, wenn ich ein zweites Widget erstelle.

Anbei habe ich mal die GUI und das ListWidget hochgeladen.

Gruß

Vic

Verfasst: 12. Mai 2007 13:35
von upsala
Auf den ersten Blick fällt mir auf, daß du keine Layouts verwendest. Warum nicht?

Verfasst: 12. Mai 2007 14:25
von Vic
Weil ich mit QT bislang noch nicht sehr intensiv gearbeitet habe und damit auch bislang noch keine Erfahrungen gesammelt habe.
Aber ich wüsste jetzt auch nicht, inwiefern Layouts mir bei meinem Problem weiterhelfen...

Gruß

Vic

Verfasst: 1. August 2007 14:51
von Antis_81
Besser spät als nie :). Könnte es evtl. daran liegen, dass du auf dieselbe Instanzvariable zugreifst?

Sprich, du hast einen Member _Widget und sagst dann zweimal:
_Widget = new QWidget(this);

Das würde dieses Verhalten erklären.

QListWidget spinnt [gelöst]

Verfasst: 1. August 2007 15:13
von neuschi
Ohne Layout funkioniert das Window-Management nicht richtig.
Mach mal folgendes:

In List::List(QWidget *parent):

Code: Alles auswählen

label = new QLabel(this);
	list = new QListWidget(this);
	QVBoxLayout *layout = new QVBoxLayout(this);
 	layout->addWidget(label);
 	layout->addWidget(list);
 	setLayout(layout);
und in Gui::Gui(QWidget *parent)

Code: Alles auswählen

List *category = new List(this);
	List *program = new List(this);
	
	QHBoxLayout *layout = new QHBoxLayout(this);
	layout->addWidget(category );
	layout->addWidget(program );
	setLayout(layout);
Dann gehts.

\Ralf