Seite 1 von 1
[gelöst] Cursor in SpinBox
Verfasst: 17. August 2005 15:20
von moo
Hallo!
Ich hab in meinem DialogFenster mehrere SpinBoxen. Wenn ich in eine der Boxen klicke um per Hand den Wert zu ändern, komme ich mit dem Cursor (trotz Enter-Drücken und auf den Dialog klicken) nicht mehr aus der Box heraus. Ich kann max. noch in die anderen SpinBoxen wechseln. Das gefällt mir nicht, man kommt doch normalerweise nach ENTER wieder da raus. Muss man dafür eine bestimmte Einstellung vornehmen?
Hoffe ihr könnt mir helfen!
moo
Verfasst: 17. August 2005 23:47
von FlorianBecker
Ich weiß nun nicht wirklich, ob Enter das ist und ob es das kann, aber sollte Enter nicht so funktionieren, wie du das möchtest, dann musst einfach nur die keyPressEvent Methode reimplementieren. Ich glaube die heißt so, zumindest so ähnlich ist in QWidget. Und dann mit event -> key() == Qt::Key_Enter oder so ähnlich. Da gibt es das ein oder andere Beispiel in der Onlinehilfe.
Verfasst: 18. August 2005 09:58
von moo
Da hab ich auch schon dran gedacht, aber ich hab halt keine Ahnung "wem ich da was" sagen soll...also ob ich dem Cursor, der SpinBox oder gar dem Widget was zuweisen soll...finde auch leider nix entsprechendes in den Hilfen...
Verfasst: 18. August 2005 10:06
von FlorianBecker
Du musst das dem SpinBox "zuweisen".
Code: Alles auswählen
class MySpinBox : public QSpinBox {
protected:
void keyPressEvent( QKeyEvent *event );
}
Und im Source:
Code: Alles auswählen
void MySpinBox::keyPressEvent( QKeyEvent *event ) {
if ( event -> key() == Qt::Key_Enter )
qDebug( "Enter wurde gedrückt" );
}
Und in der Hilfe:
http://doc.trolltech.com/4.0/qwidget.html#keyPressEvent
http://doc.trolltech.com/4.0/qkeyevent.html
Wem du was sagen sollst? Mh, ein Fehler ist das noch nicht, da es nicht unmöglich ist hier eine Lösung zu schaffen. Wenn es ein wirklicher Fehler ist, den du alleine auch schon nicht mehr aus bügeln kannst, dann schreibst den einfach an die Trolle. Oder meinst du mit deinem Spruch etwas anderes?
Verfasst: 18. August 2005 10:23
von moo
FlorianBecker hat geschrieben:Und im Source:
Code: Alles auswählen
void MySpinBox::keyPressEvent( QKeyEvent *event ) {
if ( event -> key() == Qt::Key_Enter )
qDebug( "Enter wurde gedrückt" );
}
Schon klar, aber mir geht es eher darum was ich der SpinBox "zuweisen" muß, damit der Cursor nicht mehr drin steht.
FlorianBecker hat geschrieben:
Wem du was sagen sollst? Mh, ein Fehler ist das noch nicht, da es nicht unmöglich ist hier eine Lösung zu schaffen. Wenn es ein wirklicher Fehler ist, den du alleine auch schon nicht mehr aus bügeln kannst, dann schreibst den einfach an die Trolle. Oder meinst du mit deinem Spruch etwas anderes?
Ja, ich meine das anders: "wem" = SpinBox || Widget || Coursor und "was" = meine eigentliche Frage.

Verfasst: 18. August 2005 10:27
von FlorianBecker
Also deine eigentliche Frage ist: Kommt man denn mit Enter nicht wieder aus der SpinBox heraus?
Du willst dem aktuellen SpinBoxWidget den Focus entziehen?
Nun, da gibt es mehr Möglichkeiten, keinen Focus zuordnen, oder dem Widget sagen, er soll einfach einen Focus weitergehen. Steht genauso in der Dokumentation
Verfasst: 18. August 2005 10:56
von moo
Hmm...ich habe gerade gemerkt, das es vieleicht (auch) an was anderem liegt.
Das Fenster mit den SpinBoxen ist nicht das "Hauptfenster" und wenn ich mit der Maus dieses Fenster aktiviere reagiert er plötzlich auf Enter und ähnliches...zwar noch nicht in der gewünschten Form (der Cursor ist immernoch in der SpinBox), aber vielleicht sollte ich das erstmal lösen...
Soweit also erstmal danke!
Ich meld mich wieder wenn es mit deinen Tipps nicht klappt...
moo