[solved]Cursor soll automatisch in das nächste Feld springen

Alles rund um die Programmierung mit Qt
Antworten
cimbomgs
Beiträge: 70
Registriert: 21. August 2008 21:14

[solved]Cursor soll automatisch in das nächste Feld springen

Beitrag von cimbomgs »

Hallo Forum,

Bild

wie auf dem Bild zu sehen ist, habe ich 3 Felder. Alle Felder sind auf bestimmte Anzahl von Zeichen / Characters begrenzt. Jetzt hätte ich gerne wenn zBsp. im 1. Feld die max Anzahl von Charakters eingetippt sind, der Cursor automatisch in das Feld 2 springt. Und hier genau so, sobald max. Anzahl eingetippt ist in das 3. Feld springen.

Wie und mit was kann ich das realisieren?

Vielen Dank
Zuletzt geändert von cimbomgs am 10. September 2008 14:21, insgesamt 1-mal geändert.
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

Beitrag von -=Freaky=- »

spontan wuerd ich sagen, cursor an den anfang d. feldes setzen und wenn der cursor an stelle x (nach letztem zeichen d. feldes) angelangt ist, an den anfang d. nexten feldes springen.
wie du das im detail anstellst, wird der assistant oder doc.trolltech.com dir sagen, denk ich.
obs nen sinnvolleren weg gibt, weiss ich auch nicht.

mfg,
julian
cimbomgs
Beiträge: 70
Registriert: 21. August 2008 21:14

Beitrag von cimbomgs »

-=Freaky=- hat geschrieben:spontan wuerd ich sagen, cursor an den anfang d. feldes setzen und wenn der cursor an stelle x (nach letztem zeichen d. feldes) angelangt ist, an den anfang d. nexten feldes springen.
wie du das im detail anstellst, wird der assistant oder doc.trolltech.com dir sagen, denk ich.
obs nen sinnvolleren weg gibt, weiss ich auch nicht.

mfg,
julian
Du hast mein Problem nur in anderen Worten dargestellt :roll: .. Das ist ja genau was ich machen möchte. Habe auch im Doc gesucht, aber auf keine Lösung gekommen.

wie gesagt, ich überprüfe die max. Anzahl der eingegebenen Charakters. Wenn z.Bsp. das 1. Feld max. 5 Zeichen haben darf, dann wird überprüft ob 5 Zeichen eingetippt sind. Wenn ja dann springe bitte in das 2. Feld. Beim 2. Feld sind max. 2 Zeichen erlaubt. Wenn 2 Zeichen eingetippt sind, dann soll auch hier der Cursor in das nächste Feld (in das 3. Feld) springen. Im 3.Feld braucht es keine Überprüfung. In dem Feld kann der Cursor stehen bleiben
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

cursorPositionChanged()-Signal abfangen, wenn gewünschte Position erreicht => Focus auf das nächste Feld setzen
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

textChaned() reicht auch :)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
cimbomgs
Beiträge: 70
Registriert: 21. August 2008 21:14

Beitrag von cimbomgs »

ich verstehe nicht wie ich

Code: Alles auswählen

QFocusEvent ( Type type, Qt::FocusReason reason = Qt::OtherFocusReason )
einsetzen kann.

Positionsabfrage des Cursors funktioniert, aber dann will ich durch eine IF-Abfrage in das nächste Feld springt. Ich verstehe aber nicht wie ich QFocusEvent einsetzen kann.

dachte das vielleicht so auch klappt (naja war ja nur ein Gedanke)

Code: Alles auswählen

if( ui.lineEdit_links->cursorPosition() == 5 )
	{
		ui.lineEdit_links->setCursorPosition(ui.lineEdit_mitte->setCursorPosition(0));
	}
cimbomgs
Beiträge: 70
Registriert: 21. August 2008 21:14

Beitrag von cimbomgs »

cimbomgs hat geschrieben:ich verstehe nicht wie ich

Code: Alles auswählen

QFocusEvent ( Type type, Qt::FocusReason reason = Qt::OtherFocusReason )
einsetzen kann.

Positionsabfrage des Cursors funktioniert, aber dann will ich durch eine IF-Abfrage in das nächste Feld springt. Ich verstehe aber nicht wie ich QFocusEvent einsetzen kann.

dachte das vielleicht so auch klappt (naja war ja nur ein Gedanke)

Code: Alles auswählen

if( ui.lineEdit_links->cursorPosition() == 5 )
	{
		ui.lineEdit_mitte->setCursorPosition(0);
	}
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Focus auf das nächste Feld setzen
Das steht nichts von Cursor oder? Da steht noch kürzer gesagt 'Focus setzen' als setFocus()
cimbomgs
Beiträge: 70
Registriert: 21. August 2008 21:14

Beitrag von cimbomgs »

super vielen Dank, genau so musste es sein :lol:

Code: Alles auswählen

if( ui.lineEdit_links->cursorPosition() == 5 ) 
   { 
      ui.lineEdit_mitte->setFocus(); 
   }
dankeschööööööööööön :D :wink:
Antworten