Seite 1 von 2
[gelöst] QTextEdit/QLineEdit griechische Zeichen eingeben
Verfasst: 17. November 2008 13:03
von sigvdr
Hallo,
Besteht die Möglichkeit für ein einzelnes QTextEdit/QLineEdit die Tastatureingabe auf griechische Zeichen umzuschalten ?
Gruß Sig
Verfasst: 17. November 2008 13:55
von macman
Die Zeichen kommen von deiner Tastatur. Qt ist das ziemlich egal, da Unicode verwendet wird und griechische Zeichen da enthalten sind. Frage ist also, wie sagst Du es deiner Tastatur, das in dem Editfeld ein anderes Tastaturlayout genutzt werden soll?

Verfasst: 17. November 2008 19:12
von sigvdr
Wow das war eine hochqualifizierte Antwort!
Wenn manch einer seine Programme genauso schlampig schreibt, wie seine Antworten hier
Die Zeichen kommen von deiner Tastatur.
Stimmt nicht! Da kommen nur die Binärcodes die ( von Software ) in die Zeichen umgesetzt werden.
Verfasst: 17. November 2008 20:08
von upsala
Deine Frage ist auch etwas unverständlich. Warum willst du etwas umschalten? Wenn du ein griechisches Zeichen über deine Tastatur eingibst, was steht dann in deinem QLineEdit?
Verfasst: 17. November 2008 20:52
von sigvdr
Stell dir vor du hast 2 x QTextEdit und du willst in das erste einen griechischen Text ( mit griechischen Schriftzeichen ) eingeben und in das zweite einen deutschen Text.
Also muss ich doch irgendwo die von der Tastatur kommenden Codes einmal als griechische Zeichen interpretieren und einmal als römische Zeichen.
Geht das mit den Hausmitteln von QT , oder muss ich dazu die Tastaturcodes vor dem QTextEdit abfangen und selbst umsetzen ?
Verfasst: 17. November 2008 21:11
von upsala
Ah ja... Häng doch bitte mal deine Griechische Tastatur an deinen Rechner und teil uns bitte mit, was dann in deinem QLineEdit erscheint. Römische Zeichen dürften nie Probleme machen, die sind vollständig im ASCII-Zeichensatz enthalten.
Verfasst: 18. November 2008 07:52
von macman
sigvdr hat geschrieben:Also muss ich doch irgendwo die von der Tastatur kommenden Codes einmal als griechische Zeichen interpretieren und einmal als römische Zeichen.
Das macht normalerweise das System, denn dem kannst Du sagen welches Tastaturlayout genommen werden soll. Das wandelt dann die Keycodes in die entsprechenden Zeichen.
sigvdr hat geschrieben:Geht das mit den Hausmitteln von QT , oder muss ich dazu die Tastaturcodes vor dem QTextEdit abfangen und selbst umsetzen ?
Das musst Du selbst machen. keyPressEvent überschreiben und eine griechische Mapping-Table rein.
BTW, wenn Du eine Zeitung liest oder ein Buch, hast Du da jemals Leerzeichen vor einem Satzzeichen gesehen? Machst Du vor den Punkten dich auch nicht. Warum also vor Komma und Fragezeichen. Ich habe hier mal wieder ein allein stehendes Fragezeichen am Anfang eine Zeile. Du bist also nicht alleine mit diesem Fehler.
Verfasst: 18. November 2008 09:27
von sigvdr
Häng doch bitte mal deine Griechische Tastatur an deinen Rechner
Ich habe keine griechische Tastatur! Das soll mit einer ganz normalen deutschen Tastatur laufen.
Beispiele der Umsetzung:
Das macht normalerweise das System, denn dem kannst Du sagen welches Tastaturlayout genommen werden soll.
Das soll halt nicht Systemweit umgestellt werden sondern nur für ein einziges QTextEdit.
Verfasst: 18. November 2008 09:38
von Christian81
Wie meine Vorredner schon geschrieben haben - die ganzen Keycodes kommen vom System. Was Du versuchen kannst, ist das keyEvent zu überschreiben, die Codes selbst auszuwerten und das entsprechende Zeichen dann in dein TextEdit einzufügen.
Verfasst: 18. November 2008 12:39
von AuE
was wäre wenn er den Font für das LineEdit auf Symbol stellt? Dann werden die Zeichen immerhin so dargestellt. Weiß leider net für was es genau brauchst...damit weiterarbeiten wird dann die andere Sache...
Verfasst: 18. November 2008 13:00
von macman
Was soll das denn bringen? Die Fonts enthalten doch schon die griechischen Zeichen, da muss man nichts umstellen.
Verfasst: 18. November 2008 16:05
von AuE
Er will doch griechische Buchstaben eingeben.... so stelle ich die Schrift auf "Symbol" so wird anstelle eines a ein >alpha< getippt oder?
Auf/an der Tastatur änder t sich dadurch nix, Ist aber glaube ich ein besserer Vorschlag als ne griechische Tastatur an den Rechner zu hängen...
Ich habe keine griechische Tastatur! Das soll mit einer ganz normalen deutschen Tastatur laufen.
Beispiele der Umsetzung: Code:
m -> µ
g -> γ
r -> ρ
Wenn ich in einen LineEdit bei mir diese LineEdit auf Font "Symbol" setze... dann passiert doch genau das....oder etwa nicht?
Wenn ich das wieder in einen Datei schreibe das es dann wieder was ganz anderes ist ist mir auch klar.... aber darum ging es ja bisher nicht, oder?
Verfasst: 18. November 2008 17:23
von Christian81
macman hat geschrieben:Was soll das denn bringen? Die Fonts enthalten doch schon die griechischen Zeichen, da muss man nichts umstellen.
Er möchte über eine von sich aus festgelegten Shortcut ein Zeichen basteln - so zumindest habe ich das verstanden.
Verfasst: 19. November 2008 07:31
von AuE
hmmm würde ich grad anders sehen. denn das was er weiter oben geschrieben hat m ==> µ ist ja nur die griechische Darstellung des jew. Buchstabens.
Das soll halt nicht Systemweit umgestellt werden sondern nur für ein einziges QTextEdit.
Aber evtl sollte er uns erklären was er genau braucht/vor hat. Wenn er´s nur Anzeigen will sollte mein Vorschlag klappen. wenn er das ganze in ne Datei schreiben will muss was anderes her....
Verfasst: 19. November 2008 07:51
von macman
AuE hat geschrieben:Er will doch griechische Buchstaben eingeben.... so stelle ich die Schrift auf "Symbol" so wird anstelle eines a ein >alpha< getippt oder?
Nein. Wenn Du ein a tippst, dann kommt ein a ins Editfeld, genauer ein Zeichen mit dem Code 97. Der Font bestimmt nur welches Zeichen an der 97. Stelle ist.
Damit ein Alpha da steht, gibt es je nach BS verschiedene Möglichkeiten.
http://de.wikipedia.org/wiki/Unicode#Eingabemethoden
Und gleich noch die entsprechende Tabelle dazu.
http://www.utf8-zeichentabelle.de/
Diese Eingabemethoden wären im gewünschten Fall unbrauchbar, wer hat schon die ganzen Nummern im Kopf, deshalb muss über einen keyEvent ein a in ein alpha umgewandelt werden, also statt 97 muss 52913 ausgegeben werden. Das muss von Hand gemacht werden, ist halt etwas Arbeit

Eventuell reicht es ja auf jede Nummer 52816 zu addieren. Wenn dann ein passender Font eingestellt ist, wird auch das korrekte Zeichen angezeigt.
So würde ich es machen.