Seite 1 von 1

Mehrere Farben in Eingabefeld

Verfasst: Sonntag 15. November 2015, 21:29
von DerUser9
Hallo Zusammen,
Ich programmiere gerade einen Texteditor und will nun, dass man mehrere Farben im Eingabefeld hat. Eine Farbe kann man ja einfach mit fg einstellen.
Ist es auch möglich wenn ich jetzt das Wort Fischvogel schreibe, dass das rot hervorgehoben wird? Oder müsste ich für das zu etwas "mächtigeren" greifen wie tkinter?

Ich hoffe ihr könnt mir helfen :D

Re: Mehrere Farben in Eingabefeld

Verfasst: Sonntag 15. November 2015, 22:21
von Alfons Mittelmeyer
Also, wenn Du mehrere Farben haben möchtest, dann ist das mit einem normalen Eingabefeld auch nicht machbar. Wenn Du Dir aber selber eines programmierst, dann schon. Mit Canvas und text item in tkinter ist so etwas durchaus machbar, wenn auch etwas aufwändig zu programmieren.

Re: Mehrere Farben in Eingabefeld

Verfasst: Sonntag 15. November 2015, 22:51
von BlackJack
@DerUser9: Was ist denn bei Dir ein „Eingabefeld“? Und wenn Du nicht `tkinter` verwendest, was dann, und warum dann im Tkinter-Unterforum?

Re: Mehrere Farben in Eingabefeld

Verfasst: Montag 16. November 2015, 09:18
von DerUser9
BlackJack hat geschrieben:@DerUser9: Was ist denn bei Dir ein „Eingabefeld“? Und wenn Du nicht `tkinter` verwendest, was dann, und warum dann im Tkinter-Unterforum?
Ich hab schon Tkinter benutzt. Ich wollte nur fragen ob es technisch machbar ist. Und canvas hab ich keine Ahnung :D. Ich hab ScrolledText verwendet. Und wie könnte ich das jetzt mit Canvas lösen?

Re: Mehrere Farben in Eingabefeld

Verfasst: Montag 16. November 2015, 11:30
von Alfons Mittelmeyer
Es muss nicht unbedingt ein Canvas sein, der bietet sich aber an, da man ihn scrollen kann und auch so ziemlich alles damit machen kann.
Da könntest Du die Buchstaben auch einzeln mit x und y Koordinaten als text item platzieren. Und wenn man einen Buchstaben einfügt, die rechts davon nach rechts rutschen. Da wäre natürlich auch rechnen nötig. Etwa die Breiten verschiedener Buchstaben in Proportionalschrift und abhängig von Schriftgröße und Schriftart.

Den Zeilenumbruch müßtest Du natürlich auch dann selber programmieren.
Beim Canvas kannst Du auch Grafiken einfügen, etwa Bullets.

Da läßt sich eine Textverarbeitung damit programmieren. Aber wie gesagt, es ist aufwändig. Es sei denn Du beschränkst Dich auf Fixbreitenschrift, da würde das Ganze dann einfacher.

Aber warum willst Du eine Textverarbeitung programmieren. Es gibt doch schon etliche Textverarbeitungen. Übrigens unter Windows gibt es auch einige Druckertreiber, die HPGL unterstützen. Und mit etwas Aufwand könnte man dann solche in Files gedruckte Seiten in Canvas items konvertieren. Wenn ich mich recht erinnere, könnte es HP Laserjet gewesen sein.

Ich würde denken, versuch erst einmal so eine Konvertierung, damit Du ein wenig einen Überblick bekommst.

Wie gesagt, möglich ist alles, aber wirklich Textverarbeitung, das ist aufwändig.

Re: Mehrere Farben in Eingabefeld

Verfasst: Montag 16. November 2015, 13:54
von BlackJack
@Alfons Mittelmeyer: Jemanden zu Empfehlen Canvas dazu zu verwenden all das mühsam nachzuprogrammieren was das verwendete `Text` bereits kann ist irgendwie ziemlich sinnfrei. Und Texteditor ≠ Textverarbeitung.

@DerUser9: `ScrolledText` ist von `Tkinter.Text` abgeleitet, man kann dort also auch mittels Tags Textstellen markieren und den Tags dann andere Farben, Schriftarten, und so weiter zuordnen. Siehe zum Beispiel http://effbot.org/tkinterbook/text.htm oder http://infohost.nmt.edu/tcc/help/pubs/t ... /text.html für Referenzdokumentation zum `Text`-Widget.

Re: Mehrere Farben in Eingabefeld

Verfasst: Montag 16. November 2015, 17:51
von Alfons Mittelmeyer
@BlackJack Sorry, hatte mir das Text Widget von tkinter noch nicht so richtig angeschaut. Aber mit der Einfügung von tags bietet es durchaus alles, was man nicht nur für einen Texteditor, ja sogar für eine Textverarbeitung braucht.

Mit dem text widget wäre durchaus Libre Office Write auf tkinter Basis möglich. Und Canvas bietet auch alles für so etwas wie Libre Office Draw.

Re: Mehrere Farben in Eingabefeld

Verfasst: Dienstag 17. November 2015, 17:54
von DerUser9
Ich hab es nun geschafft das es in einem bereits vorhandenen Text andere Farbe hat (damit meine ich insert). Aber wie schaff ich es jetzt , dass die Wörter im laufenden Gebrauch unterstrichen werden? :(

Re: Mehrere Farben in Eingabefeld

Verfasst: Dienstag 17. November 2015, 23:35
von BlackJack
@DerUser9: Falls „laufender Gebrauch“ so etwas wie Syntaxhervorhebung wie in einem Quelltexteditor meint, kannst Du Dir ja mal anschauen wie IDLE das gelöst hat. Das verwendet ja Tkinter.