Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
suntsu
- Beiträge: 2947
- Registriert: 03.05.2002 10:45:12
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: schweiz
-
Kontaktdaten:
Beitrag
von suntsu » 20.02.2005 21:46:54
Tag
Nachdem mein Problem mit dem erstellen von Buttons bereits gelöst wurde
habe ich jetzt eine nächste Frage.
Code: Alles auswählen
QObject::connect(arrowButton[i], SIGNAL(clicked()), this, SLOT(arrowPressed()));
Das ganze funktioniert soweit, d.h. die methode arrowPressed wird aufgerufen wenn auf den Button geklickt wird.
Jetzt möchte ich gerne wissen welcher Button gedrückt wurde(
http://www.debianforum.de/forum/viewtop ... highlight= ).
Gibt es eine Möglichkeit das rauszufinden?
Bei anderen Sprachen hat man als Argument ja meistens den Sender. Gibt es da auch für QT eine Lösung?
gruss
manuel
-
peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
Beitrag
von peschmae » 20.02.2005 22:06:31
Äh, ich glaube nicht dass das geht
Was machen wir da nun? Hmm. anda_skoa auf mrunix fragen
*hint*
MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy
-
suntsu
- Beiträge: 2947
- Registriert: 03.05.2002 10:45:12
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: schweiz
-
Kontaktdaten:
Beitrag
von suntsu » 20.02.2005 22:10:31
Salü peschmae
Ich hab da ein bisschen was gefunden[1], ich finde aber das müsste eleganter gehen als da ne eigene Buttonklasse zu schreiben.
gruss
manuel
[1]
http://www.debianforum.de/forum/viewtop ... highlight=
Edit:
Mit einer ButtonGroup würde es wohl auch gehen, aber dann kann ich die Button imo nicht horizontal verteilen.
-
BeS
- Moderator
- Beiträge: 3236
- Registriert: 17.04.2002 18:30:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Stuttgart
-
Kontaktdaten:
Beitrag
von BeS » 20.02.2005 22:38:14
suntsu hat geschrieben:
Edit:
Mit einer ButtonGroup würde es wohl auch gehen, aber dann kann ich die Button imo nicht horizontal verteilen.
Wieso? Du kannst in einer ButtonGroup genauso die Button in einer VBox und/oder HBox beliebig anordnen wie an jeder anderen Stelle im Programm.
Aber wie kannst du in einer ButtonGroup herausfinden von welchem Button das Signal gekommen ist?
-
suntsu
- Beiträge: 2947
- Registriert: 03.05.2002 10:45:12
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: schweiz
-
Kontaktdaten:
Beitrag
von suntsu » 20.02.2005 22:56:38
*
For this specific case, you could group the buttons in a QButtonGroup.
The QButtonGroup emits a clicked(int) signal containing the id of the
button that was clicked when one of its buttons is clicked.
Das hab ich von [1]
gruss
manuel
[1]
http://lists.trolltech.com/qt-interest/ ... 00720.html
-
BeS
- Moderator
- Beiträge: 3236
- Registriert: 17.04.2002 18:30:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Stuttgart
-
Kontaktdaten:
Beitrag
von BeS » 20.02.2005 23:08:46
suntsu hat geschrieben: *
For this specific case, you could group the buttons in a QButtonGroup.
The QButtonGroup emits a clicked(int) signal containing the id of the
button that was clicked when one of its buttons is clicked.
Das hab ich von [1]
gruss
manuel
[1]
http://lists.trolltech.com/qt-interest/ ... 00720.html
ok, habe ich auch gerade in der doku gefunden. Dann kannst du ja eine ButtonGroup verwenden, dann mußt du auch nicht das clicked-Signal von jedem Button einzeln verbinden.
-
suntsu
- Beiträge: 2947
- Registriert: 03.05.2002 10:45:12
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: schweiz
-
Kontaktdaten:
Beitrag
von suntsu » 20.02.2005 23:49:34
so, hier jetzt die Lösung
Code: Alles auswählen
QButtonGroup *myButtonGroup = new QButtonGroup(1, Qt::Vertical, this );
myButtonGroup->setGeometry(20, 100, 480, 60);
myButtonGroup->setMargin(0);
myButtonGroup->setInsideMargin(0);
myButtonGroup->setInsideSpacing(0);
QObject::connect(myButtonGroup, SIGNAL(clicked(int )), this, SLOT(arrowPressed(int )));
for(int i = 0;i<8;i++){
arrowButton[i] = new QPushButton("",myButtonGroup);
arrowButton[i]->setFlat(true);
arrowButton[i]->setPixmap(*arrowPixmap);
arrowButton[i]->setFixedSize(60,60);
}
edit:
Aber ich finde das jetzt schon ein bisschen Umständlich...(evt. Verstehe ich es auch noch ned richtig.)
-
BeS
- Moderator
- Beiträge: 3236
- Registriert: 17.04.2002 18:30:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Stuttgart
-
Kontaktdaten:
Beitrag
von BeS » 21.02.2005 14:38:47
suntsu hat geschrieben:Hier jetzt mal einen ersten Screenshot von dem ganzen...[1]
Sieht ja wirklich ganz nett aus. Sind jetzt nur die obere Reihe (grüne Pfeile) Buttons oder das ganze Feld? Wo hast du denn die Texturen dafür her? Selber gemacht?
-
suntsu
- Beiträge: 2947
- Registriert: 03.05.2002 10:45:12
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: schweiz
-
Kontaktdaten:
Beitrag
von suntsu » 21.02.2005 15:28:55
BeS hat geschrieben:suntsu hat geschrieben:Hier jetzt mal einen ersten Screenshot von dem ganzen...[1]
Sieht ja wirklich ganz nett aus. Sind jetzt nur die obere Reihe (grüne Pfeile) Buttons oder das ganze Feld? Wo hast du denn die Texturen dafür her? Selber gemacht?
salü
Alles Buttons. Und der Pfeil hab ich mir von einem Icon abgekupfert, und die Kreise selbst gemacht.
gruss
manuel
-
suntsu
- Beiträge: 2947
- Registriert: 03.05.2002 10:45:12
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: schweiz
-
Kontaktdaten:
Beitrag
von suntsu » 21.02.2005 15:30:11
Tag
Das war eigentlich das Verhalten das ich anfangs gesucht hatte. Jetzt hab ich es allerdings bereits mit der GroupBox und dem clicked(int) Signal gelöst.
gruss
manuel
-
peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
Beitrag
von peschmae » 21.02.2005 18:42:08
Danke. Mal wieder was gelernt
Naja, wenn man am falschen Ort sucht wird man halt nicht fündig.
MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy