Hallo,
ich programmiere zurzeit mit ein paar Freunden einen Spanisch-Konjugationstrainer mit Qt. Den ersten Dialog den man sieht, ist der Login-Dialog, welcher (im groben) 2 Labels, 2 LineEdits und 2 QPushButton enthält.
Einer der Buttons ist der Login-Button, der, wenn man Enter drückt, betätigt werden soll. Laut meinem Buch („C++ GUI Programming with Qt 4 Second Edition“) funktioniert es indem ich einfach die setDefault(true)-Methode meines Login-Buttons aufrufe. Doch in der Praxis funktioniert es nicht.
Hier mein Konstruktor: http://pastebin.com/WMqKbxdJ
Wie man sieht, setze ich auf Zeile 75 den Login-Buttons als Default. Optisch passiert das auch im Dialog, aber wenn ich Enter drücke passiert nichts. Erst wenn ich mit der Maus draufklicke.
Woran liegt das?
Danke,
Gruß
ctwx
trotz QPushButton->setDefault(true) keine Aktion bei Ente
Wenn auf "Ente" nichts passiert solltest du mal "Duck" versuchen...
Im ernst: in der Doku steht:
Könnte es daran liegen?
Im ernst: in der Doku steht:
Du hast aber anscheinend ein Widget:http://doc.qt.nokia.com/4.6/qpushbutton.html#default-prop hat geschrieben: The default button behavior is provided only in dialogs
Code: Alles auswählen
login::login(QWidget *parent)
: QWidget(parent)Ja klar funktioniert es dort wie gewünscht.. es IST ja auch ein Dialog:
hth..
Code: Alles auswählen
pushButtonDialog::pushButtonDialog(QWidget *parent)
: QDialog(parent) // das IST ein Dialog...Code: Alles auswählen
login::login(QWidget *parent)
: QWidget(parent) // das ist _KEIN_ Dialog sondern ein Widget!!