template Funktion setFocusHelp
Solved
German
-
Hallo zusammen,
ich wollte eine Template Funktion schreiben, die mir der Focus ja nach State (Status der Anwendung) entwieder auf PushButton oder QLineEdit setzen.
Die Funktion sieht so aus:
template <typename T> void setFocusEncoderTest(T a) { if(a == ui.lineEditBenutzerName) { ui.lineEditbenutzerName->setFocus(Qt::OtherFocusReason); } if(a == ui.pushNameValidation) { ui.pushNameValidation->setFocus(); } ......... }
Hier ist der Aufruf:
setFocusEncoderTest (ui.lineEditBenutzerName)
Das funktioniert aber nicht.
Fehler :error C2446: '==': no conversion from 'QPushButton *' to 'QLineEdit *'
Ich dachte template Funktion ist für so was gedacht oder lag ich falsch
Danke -
Mit template wird das nicht gehen aber wenn ich so schreibe :
void setFocusEncoderTest(QWidget* a) { if(a == ui.lineEditBenutzerName) { ui.lineEditbenutzerName->setFocus(Qt::OtherFocusReason); } if(a == ui.pushNameValidation) { ui.pushNameValidation->setFocus(); } ......... }
oder so :(Funktionsüberladen)
void setFocusEncoderTest(QPushButton* a) { a->setFocus(); } void setFocusEncoderTest(QLineEdit* a) { a->setFocus(Qt::OtherFocusReason); }