Identische Tkinter -Text -Widgets, wenn Schriftstil und Größe geändert werdenPython

Python-Programme
Anonymous
 Identische Tkinter -Text -Widgets, wenn Schriftstil und Größe geändert werden

Post by Anonymous »

Ich habe ein Programm, das Tkinter verwendet. Es gibt zwei Tkinter -Text -Widgets, bei denen der erste einen Beispieltext enthält und der zweite eine Benutzereingabe nimmt, damit der Benutzer denselben Beispieltext eingeben kann, der sich im ersten Text -Widget befindet. < /P>
In diesem Programm versuche ich auch, eine bestimmte Anzahl von Zeichen automatisch in der Zeichenfolge des Beispieltextes automatisch ein \ n einzufügen, in diesem Fall alle 10 Zeichen, so wie das erste Text -Widget Das enthält den Beispieltext hat keine Wörter, die sich zwischen zwei Zeilen überlappen. Also habe ich die textWrap.wrap () -Methode wie SO verwendet:
import tkinter as ttk
import textwrap

a_string = "This is a line and another line and more lines further lines"
a_string = textwrap.wrap(text=a_string, width=10, drop_whitespace=False) # Creates a list with 10
# characters per string element unless the string element has to be a made shorter to prevent a word
# overlapping between one string element and the next

for num in range(0,len(a_string)):
a_string[num] = a_string[num]+"\\n"
a_string = "".join(a_string)
a_string = a_string.replace("\\n","\n")

window = ttk.Tk()
window.minsize(width=200, height=100)

txt = ttk.Text(
window,
wrap=ttk.WORD,
width = 10, # 10 characters per line
height=10,
)
txt.insert(
"1.0",
a_string,
)
txt.grid(
pady=10,
padx=10,
)

user_input = ttk.Text(
window,
wrap=ttk.WORD,
width = 10, # 10 characters per line
height=10,
)
user_input.grid(
pady=10,
padx=10,
)

window.mainloop()
< /code>
, der nach dem Benutzer den gleichen Text im zweiten Widget angibt (beachten Sie den Text in beiden unten Es gibt "weiter" im zweiten Widget):
< /p>
Wenn ich jetzt den Schriftstil und die Größe beider Text -Widgets wie SO ändere: < /p>
txt = ttk.Text(
window,
font="Arial 14", # Font style and size
wrap=ttk.WORD,
width = 10, # 10 characters per line
height=10,
)
txt.insert(
"1.0",
a_string,
)
txt.grid(
pady=10,
padx=10,
)

user_input = ttk.Text(
window,
font="Arial 14", # Font style and size
wrap=ttk.WORD,
width = 10, # 10 characters per line
height=10,
)
user_input.grid(
pady=10,
padx=10,
)
< /code>
Die Anzahl der Zeichen pro Zeile in beiden Widgets ist nicht mehr gleich, da das zweite Widget mehr als 10 Zeichen pro Zeile in Anspruch nimmt, obwohl ich die Breite beider Text -Widgets auf 10 angibt :

Meine Frage lautet also: Wie kann ich sicherstellen, dass beide Widgets genau die gleiche Menge an Zeichen pro Zeile haben und genau dann identisch aussehen, wenn der Schriftstil und die Größe des Schriftarts und der Größe geändert werden?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post