Seite 1 von 1

Tkinter Label Textfarbe ändern

Verfasst: Dienstag 3. November 2020, 15:35
von Der_Scripter
Hallo,

ich möchte wissen, ob es möglich die Textfarbe eines Labels nur teilweise zu ändern.
Also so, dass die eine hälfte z.B. eine andere Farbe hat als die andere.

LG Der_Scripter

Re: Tkinter Label Textfarbe ändern

Verfasst: Mittwoch 4. November 2020, 11:13
von peterpy
Hallo Du - Der_Scripter,
probier's doch so:

Code: Alles auswählen

import tkinter as tk

def text_in_farben(text):
    root = tk.Tk()    
    anzahl_zeichen = len(text)   
    for position, zeichen in enumerate(text):       
        if position % 4 == 0:
            farbe = 'red'
        elif position % 4 == 1:
            farbe = 'blue'
        elif position % 4 == 2:
            farbe = 'green'
        else:
            farbe = 'black'
        tk.Label(root, text=zeichen, fg=farbe, padx=0, bd=0).pack(side='left')     
   
    root.mainloop()

if __name__ == "__main__":    
    text_in_farben(text='Mein nicht so schöner Text in Farbe')
Gruss
Peter

Re: Tkinter Label Textfarbe ändern

Verfasst: Mittwoch 4. November 2020, 14:34
von Jankie
Die Textfarbe EINES Labels zu ändern geht nicht. Du kannst es wie von peterpy beschrieben machen, also so dass jeder Buchstabe ein einzelnes Label ist oder du benutzt ein Text Widget oder machst das mit Canvas mit Text.

Re: Tkinter Label Textfarbe ändern

Verfasst: Mittwoch 4. November 2020, 15:32
von Der_Scripter
Hallo nochmal,

ich werde es wahrscheinlich so wie @peterpy machen, das Problem ist nur, dass ich meine Labels nicht "packe" sondern "place"...
Wie kann ich das x-Offset bei jedem einzelnen Buchstaben bekommen?
Bestenfalls auch in einer anderen Schriftfarbe...
Wenn nicht muss ich das offset händisch einprogrammieren

LG Der_Scripter

Re: Tkinter Label Textfarbe ändern

Verfasst: Mittwoch 4. November 2020, 15:37
von __blackjack__
@Der_Scripter: Verwende kein `place()`. Warum das keine gute Idee ist, merkst Du gerade. 🙂

Re: Tkinter Label Textfarbe ändern

Verfasst: Mittwoch 4. November 2020, 15:45
von Der_Scripter
Hallo,

ich kann mir nicht vorstellen ein schick aussehendes Layout mit .pack() zu erstellen.
Da schlage ich mich lieber durch Font files.


Wie kann ich dieses Layout mit .pack() erreichen?
Bild
(https://ibb.co/KDTzYsz)

LG Luca

Re: Tkinter Label Textfarbe ändern

Verfasst: Mittwoch 4. November 2020, 16:18
von __blackjack__
@Der_Scripter: Man kann mit `place()` nicht sinnvoll arbeiten. Du solltest da besser an Deiner Vorstellungskraft arbeiten. Und das Layout auf dem Bild scheint jetzt nicht wirklich schwer zu sein. Label die vertikal gepackt sind und unten ein Frame der Eingabefeld und Schaltfläche enthält.