[4.2.3] QListWidget spinnt

Alles rund um die Programmierung mit Qt
Antworten
Vic
Beiträge: 2
Registriert: 12. Mai 2007 11:40

[4.2.3] QListWidget spinnt

Beitrag 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
Dateianhänge
Autostarter.zip
(6.27 KiB) 156-mal heruntergeladen
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Auf den ersten Blick fällt mir auf, daß du keine Layouts verwendest. Warum nicht?
Vic
Beiträge: 2
Registriert: 12. Mai 2007 11:40

Beitrag 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
Antis_81
Beiträge: 12
Registriert: 24. Mai 2007 13:19

Beitrag 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.
neuschi
Beiträge: 78
Registriert: 23. Mai 2007 10:59

QListWidget spinnt [gelöst]

Beitrag 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
Antworten