QPushButton eine Funktion geben.



  • Hallo Leute,

    ich bin ganz neu in Qt. Habe vorher C++ Programmiert.

    Nun ich soll für die Arbeit etwas Programmieren.
    Ich möchte eine Art Anmeldung basteln bei der der User einen Benutzernamen eingeben muss und dieser dann gespeichert wird.

    Habe folgenden ansatz:
    btn_login.actions(lbup_sys::cBenutzername=frm_userlogintext.text(), lbup_haupt.show());

    Leider kriege ich die Fehlermeldung: expected primary-expression beofre '.' token

    Ich bitte um Starthilfe.

    Außerdem würde mich interessieren, muss ich eine zweite .ui Datei erstellen oder kann man irgendwie eine neue Seite erstellen?

    Vielen Dank im vorraus

    t-f



  • Hallo taut-florian,

    die member-Funktion actionsder Klasse QPushButton liefert dir eine QList<QAction *>. Wenn du wirklich mit QAction arbeiten willst musst du insertAction verwenden.

    Der normale Weg einen QPushButton mit Funktionalität zu belegen geht jedoch über den Signal / Slot Mechanismus in Qt. (http://doc.qt.io/qt-5/signalsandslots.html)

    Wenn du dein UI im Designer bearbeitest und einen PushButton hinzufügst, kannst du dir den Slot über das Kontextmenü generieren lassen. Auch die Verbindung (das connect) wird dabei automatisch erzeugt.

    Eine zweite Seite kann man entweder als weiteres UI anlegen oder z.B. ein Tab Widget einbinden.

    Wenn du nur einen Dialog zur Eingabe des Benutzernamens benötigst schau dir die Klasse QInputDialog (http://doc.qt.io/qt-5/qinputdialog.html) an.



  • Okay danke für die Antwort. Nur...

    Wann weiß ich ob es ein SLOT oder ein SIGNAL ist.
    Ich möchte ja das eine neue .ui aufgerufen wird und das der eingegebene Text in eine Variable geschrieben wird.

    Woher weiß ich was der SLOT und was das SIGNAL ist...

    Sorry wenn ich mit etwas doof anstelle.



  • Hi taut-florian,

    so würde der connect für deinen QPushButton btn_login.actions aussehen:

    connect(ui->btn_login.actions, SIGNAL(triggered()), this, SLOT(lbup_haupt.show()));
    

    Hoffe, das hilft dir weiter...


  • Banned

    This post is deleted!


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