[gelöst] Nur mal den Label-Text ändern?

Verschiedenes zu Qt
Antworten
qtNiko
Beiträge: 216
Registriert: 6. April 2007 21:26
Wohnort: München

[gelöst] Nur mal den Label-Text ändern?

Beitrag von qtNiko »

hallo,

da bin ich wieder mit einem Rätsel.

Ich möchte mit 3 Radiobuttons (radioButt_simline, radioButt_simbsequ, radioButt_simbgen) jeweils den Text eines Labels unter Verwendung von SignalMapper ändern.
Code für Konstruktor SimuDesign::SimuDesign() und den Slot simArtChanged():

Code: Alles auswählen

#include ...

SimuDesign::SimuDesign(QMainWindow *parent) : QMainWindow(parent)
{
	setupUi(this);
	/* Signalmapper für die Wechselschalter der Simulationsart:*/
	QSignalMapper *sigMapp = new QSignalMapper(this);
	  connect(sigMapp,SIGNAL(mapped(int)),this,SLOT(simArtChanged(int)));
	
	sigMapp->setMapping(radioButt_simline, 1);
	connect(radioButt_simline, SIGNAL(clicked()),sigMapp,SLOT(map()) );
	sigMapp->setMapping(radioButt_simbsequ, 2);
	connect(radioButt_simbsequ, SIGNAL(clicked()),sigMapp,SLOT(map()) );
	sigMapp->setMapping(radioButt_simbgen, 3);
	connect(radioButt_simbgen, SIGNAL(clicked()),sigMapp,SLOT(map()) );
}

void SimuDesign::simArtChanged(int buttNr)
{
	QString str;
	lineEd_stopFr->setText(str.setNum(buttNr));
	switch (buttNr)
	{
		case 1: 
		label_Bildinput->setText("F-Datendatei");
		case 2:
		label_Bildinput->setText("erstes Bild");
		case 3:
		label_Bildinput->setText("G-Datenbasis");
	}
	label_Bildinput->update();  /* sicherheitshalber */
	
	lineEd_startFr->setText(lineEd_startFr->text() + str.setNum(buttNr));
}
Die Signals der 3 Knöpfe werden mit einem SignalMapper abgefangen und entsprechend bearbeitet, siehe Konstruktor SimuDesign::SimuDesign(...
Der Slot SimuDesign::simArtChanged(int buttNr) soll nun, je nach angeklicktem Knopf den Label-Text ändern.

Dies erfolgt nicht, d.h. egal welchen Knopf ich anklicke, der Text wird immer auf "G-Datenbasis" gesetzt.
Zur Kontrolle des Wertes von buttNr habe ich ihn vor und nach dem switch-Statement in jeweils ein LineEdit ausgegeben, siehe lineEd_stopFr->setText(..) und lineEd_startFr->setText(...)
Der Wert von buttNr ist stets so, wie er gemäß angeklicktem Knopf sein muss. Dennoch wird stets nur der letzte Text als Label-Text geschrieben.

Was ist hier los?
Zuletzt geändert von qtNiko am 15. Juni 2007 22:43, insgesamt 1-mal geändert.
Gruß von qtNiko

Core i5 760, GT 240, Suse Linux11.3, Eclipse-CDT-Helios, QT4.4, QT-Integration
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

break vergessen
qtNiko
Beiträge: 216
Registriert: 6. April 2007 21:26
Wohnort: München

[gelöst] Nur mal Label-Text ändern?

Beitrag von qtNiko »

vielen Dank,

typischer Anfänger-Fehler (Pascal hängt mir noch stark nach).
Gruß von qtNiko

Core i5 760, GT 240, Suse Linux11.3, Eclipse-CDT-Helios, QT4.4, QT-Integration
Antworten