Hallo zusammen,
ich versuche gerade einen komfortableren Ersatz für die Windows Eingabeaufforderung zu schreiben.
Als Konsolen-Widget habe ich ein QPlainTextEdit genommen, doch ich habe ein Problem: Der Benutzer soll seine eigenen Eingaben löschen können, jedoch nicht die Ausgaben von Programmen. Ich müsste das Widget also teilweise readonly setzen.
Ich habe versucht, das zu implementieren, indem ich den Beginn des schreibbaren Bereiches speicher (Cursor-Position) und vor dieser Position die keyPressEvents abfange. Das funktioniert aber noch nicht ideal (z.B. kann ich mit ^ Dinge überschreiben, weil diese Taste bei mir aus irgendeinem Grund kein keyPressEvent wirft).
Hat jemand eine elegantere Idee, wie man das lösen könnte? Irgendwelche Tipps?
Danke im Vorraus!
Gruß
Oxy
QPlainTextEdit teilweise readonly machen?
-
oxymoron89
- Beiträge: 2
- Registriert: 18. November 2010 22:30
-
oxymoron89
- Beiträge: 2
- Registriert: 18. November 2010 22:30
Upsala du bist guuuut.
Es funktioniert gut, mit folgendem Aufruf:
Leider zeigt das QPlainTextEdit aber keinen TextCursor an. Die Doku sagt:
Falls jemand weiß woran das liegen kann - immer raus damit.
Erstmal danke!
Gruß
Oxymoron
Code: Alles auswählen
setTextInteractionFlags( Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard );Selektieren funktioniert gut (auch mit der Tastatur), aber ich sehe den Cursor nicht... Bin im Moment noch unter Ubuntu, werde das später mal unter Windows XP testen.Qt::TextSelectableByKeyboard
Text can be selected with the cursor keys on the keyboard. A text cursor is shown.
Falls jemand weiß woran das liegen kann - immer raus damit.
Erstmal danke!
Gruß
Oxymoron
Qt 4.6.2 unter Ubuntu 10.04 64bit
Qt Creator 1.3.1
Qt Creator 1.3.1