Ich habe eine kleine App mit 2 Text Widgets und 2 Buttons (bold + unbold) erstellt.
Nun schreibe ich etwas in Text-Feld 1 und in Text-Feld 2 hinein.
(1.Runde)
Wenn ich nun:
- den Text von Text-Feld 1 markiere, auf bold drücke und im Anschluss...
- den Text von Text-Feld 2 markiere und ebenfalls auf bold drücke, funktioniert es soweit.
(2.Runde)
Wenn ich aber dann im Anschluss:
- wieder den Text von Text-Feld 1 markiere, und auf unbold drücke, werden beide Texte gleichzeitig auf unbold gesetzt
- und wenn nun z.B. die Texte von beiden Text-Felder auf bold gestellt sind und ich einmal in das Text-Feld 1 klicke, dann den Text von Text-Feld 2 markiere und auf unbold drücke, passiert gar nichts.
Ich wäre über Eure Hilfe sehr erfreut!
Was muss verändert werden, damit die Texte in den Textfeldern
unabhängig voneinander auf "bold" oder "unbold" gesetzt werden können?
Hier der Code:
Code: Alles auswählen
import tkinter as tk
from tkinter import *
import tkinter as tk
from tkinter import font
app = tk.Tk()
app.geometry("500x500")
app.title("Bold and Unbold")
###Text-Field Frames###
TextField1 = tk.Text(app, width=20, height=2, wrap=tk.WORD,font=("Levetica",12))
TextField2 = tk.Text(app, width=20, height=2, wrap=tk.WORD,font=("Levetica",12))
def make_bold():
TextField1.tag_config("bt", font=("Levetica", "12", "bold"))
TextField2.tag_config("bt", font=("Levetica", "12", "bold"))
bold_font = font.Font(TextField1, TextField1.cget("font"))
bold_font.configure(weight="bold")
if TextField1.tag_add("bt", "sel.first", "sel.last"):
TextField2.tag_config("bt", font=("Levetica", "12", "normal"))
TextField1.tag_config("bt", font=("Levetica", "12", "bold"))
if TextField2.tag_add("bt", "sel.first", "sel.last"):
TextField1.tag_config("bt", font=("Levetica", "12", "normal"))
TextField2.tag_config("bt", font=("Levetica", "12", "bold"))
def make_unbold():
bold_font = font.Font(TextField1, TextField1.cget("font"))
bold_font.configure(weight="normal")
TextField1.tag_config("bt", font=("Levetica", "12", "bold"))
TextField2.tag_config("bt", font=("Levetica", "12", "bold"))
if TextField1.tag_remove("bt", "sel.first", "sel.last"):
TextField2.tag_config("bt", font=("Levetica", "12", "normal"))
TextField1.tag_config("bt", font=("Levetica", "12", "normal"))
if TextField2.tag_remove("bt", "sel.first", "sel.last"):
TextField1.tag_config("bt", font=("Levetica", "12", "normal"))
TextField2.tag_config("bt", font=("Levetica", "12", "normal"))
def main():
###place Text-Fields###
TextField1.place(x=29,
y=50,
width=220,
height=200)
TextField2.place(x=29,
y=280,
width=220,
height=200)
###Button-Frames###
ButtonMakeBold = Button(app, text="bold", font=("Levetica", "9", "bold"),command=make_bold)
ButtonMakeBold.place(x=300, y=210, width=40, height=40)
ButtonMakeUnbold = Button(app, text="unbold", font=("Levetica", "9", "bold"), command=make_unbold)
ButtonMakeUnbold.place(x=300, y=260, width=40, height=40)
app.mainloop()
if __name__ == '__main__':
main()
exit(0)
Liebe Grüße,
Marlon