Ich habe eine QStackedWidget
, deren erste Seite auf Wgt1
gesetzt ist. Wgt1
enthält 3 Tasten btn1,btn2
undWie verbinde ich mein QToolButton mit setIndexPage auf meinem QStackedWidget in Qt?
Btn3
. Ich möchte folgendes tun
- Wenn Widget startet, sollte SetIndex als Null, das ist meine erste Seite auf
QStackedWidget
. - Wenn ich
btn1,btn2
undbtn3
drücke, sollte ich zu indexPage 1, 2 und 3 jeweils verschieben.
Ich wollte Signal verwenden und Schlitz so versucht, das clicked()
Signal von QToolButton
zu s etCurrentIndex(int)
Schlitz QStackedWidget
zu verbinden. Aber es funktioniert nicht, da click()
keinen (int) -Wert sendet, der von setCurrentIndex(int)
benötigt wird. Deshalb dachte ich, die MousePressEvent(MouseEvent *e)
zu überschreiben. Ich möchte etwas wie eine neue signal(int)
in meinem Wgt1
vorstellen, so dass es einen bestimmten ganzzahligen Wert beim Drücken der Tasten auf der ersten Seite ausgeben wird.
Aber um dies zu implementieren Ich bin nicht klar über folgende
- Welche
MousePressEvent()
ich außer Kraft setzen sollte? Für meineWgt1
(die die Tasten enthält) oder für dieQToolButtons
, die von meinerWgt1
enthalten ist? - Wenn ich für
Wgt1
überschreiben möchte, wie kann ich in derQMousePressEvent
QToolButton
gedrückt werden?- Wenn ich für
QToolButton
überschreiben möchte, wie man es schreibt? Soll ich eine neue Klasse erstellen, die von QToolButton stammt? oder kann ich einen Funktionszeiger oder einen Ereignishandler zuMousePressEvent()
zuweisen?
- Wenn ich für
Wenn Sie die oben genannten Fragen beantworten kann es hilfreich sein, sonst können Sie jede andere Art und Weise legen auch nahe, dieses Problem zu lösen. Ich weiß nicht, ob ich mein Problem klar oder nicht erklärt habe. Bitte kehren Sie zurück Ich werde versuchen, es mehr zu erklären.