QPixmap oder Bilder wechseln
-
ConcordeLord
- Beiträge: 14
- Registriert: 9. Mai 2006 09:06
QPixmap oder Bilder wechseln
Hallo,
habe ein kleines Problem, wahrscheinlich mal wieder mit dem SIGNAL-SLOT Mechanismus.
Will in meine Applikation eine Art Statusabfrage einbauen.
Der Einfachheit halber hab ich das erstmal mit Buttons probiert.
Das Bild habe ich in ein Label geladen. Nun soll bei Drücken des Buttons das Bild im Label geändert werden. Sozusagen der Status von OK auf Error oder umgedreht.
Hab mir den SIGNAL-SLOT so überlegt:
ist strak abstrahiert!!!
connect(Button, SIGNAL(clicked()), Label, SIGNAL(setPixmap(.."Ordner/Datei.*")));
Übersetzt wird alles richtig, es kommt keine Fehlermeldung, nur beim Drücken der Buttons wird das bild nicht geändert.
Habt ihr irgendwelche Ideen?
THX
habe ein kleines Problem, wahrscheinlich mal wieder mit dem SIGNAL-SLOT Mechanismus.
Will in meine Applikation eine Art Statusabfrage einbauen.
Der Einfachheit halber hab ich das erstmal mit Buttons probiert.
Das Bild habe ich in ein Label geladen. Nun soll bei Drücken des Buttons das Bild im Label geändert werden. Sozusagen der Status von OK auf Error oder umgedreht.
Hab mir den SIGNAL-SLOT so überlegt:
ist strak abstrahiert!!!
connect(Button, SIGNAL(clicked()), Label, SIGNAL(setPixmap(.."Ordner/Datei.*")));
Übersetzt wird alles richtig, es kommt keine Fehlermeldung, nur beim Drücken der Buttons wird das bild nicht geändert.
Habt ihr irgendwelche Ideen?
THX
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Hy!
Ja, du kannst keine Konstanten übergeben per Slot.
Du musst entweder ein passendes Signal finden das die Daten übergibt die der Slot benötigt, oder ein solches Signal selbst Programmieren, oder einen Slot Programmieren der ein Signal auslöst wie du es benötigst.
Je nach dem was leichter/passender ist.
mfg
uhu01
Ja, du kannst keine Konstanten übergeben per Slot.
Du musst entweder ein passendes Signal finden das die Daten übergibt die der Slot benötigt, oder ein solches Signal selbst Programmieren, oder einen Slot Programmieren der ein Signal auslöst wie du es benötigst.
Je nach dem was leichter/passender ist.
mfg
uhu01
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
-
ConcordeLord
- Beiträge: 14
- Registriert: 9. Mai 2006 09:06
Genau das will ich machen, in einem Label die Bilder ersetzen, aber der machts einfach nicht. Ist ja eigentlich auch nur zum Testen, aber wenigstens das sollte funktionieren. Könnte mir noch jemand n Tipp zum Signal-Slot geben, oder auf was ich noch gucken müsste.
Ist meine Vermutung denn richtig, dass nach dem "setPixmap("../Ordner/Datei.*") stehen muss?
THX
Ist meine Vermutung denn richtig, dass nach dem "setPixmap("../Ordner/Datei.*") stehen muss?
THX
Also ich habe in meiner Klasse für die Pixmaps Membervariablen angelegt:
QPixmap pmBild1;
QPixmap pmBild2;
im Konstruktor definiere ich die dann (Bilder in der Resource):
pmBild1 = QPixmap(QString::fromUtf8(":/images/32x32/Bild1.png"));
pmBild2 = QPixmap(QString::fromUtf8(":/images/32x32/Bild2.png"));
Die Reihenfolge der Pixmaps, bei mir sind es mehr als 2, steht in einer QList. Im Slot für den clicked vom Button wird die Reihefolge in der QList geändert und danach eine Methode aufgerufen, die die QList abarbeitet und per switch werden dann Pixmap und Text zugewiesen:
label->setPixmap(pmBild1);
label->setToolTip(tr("Bild1"));
QPixmap pmBild1;
QPixmap pmBild2;
im Konstruktor definiere ich die dann (Bilder in der Resource):
pmBild1 = QPixmap(QString::fromUtf8(":/images/32x32/Bild1.png"));
pmBild2 = QPixmap(QString::fromUtf8(":/images/32x32/Bild2.png"));
Die Reihenfolge der Pixmaps, bei mir sind es mehr als 2, steht in einer QList. Im Slot für den clicked vom Button wird die Reihefolge in der QList geändert und danach eine Methode aufgerufen, die die QList abarbeitet und per switch werden dann Pixmap und Text zugewiesen:
label->setPixmap(pmBild1);
label->setToolTip(tr("Bild1"));