template Funktion setFocusHelp



  • 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);
    }
    

Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.