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?
Identische Tkinter -Text -Widgets, wenn Schriftstil und Größe geändert werden ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Wie funktioniert Destructor beim Schließen eines Tkinter -Toplevel -Widgets?
by Anonymous » » in Python - 0 Replies
- 9 Views
-
Last post by Anonymous
-
-
-
Rand/mt_rand auf gabelgierigen Kindern zu rufen, liefert identische Ergebnisse
by Anonymous » » in Php - 0 Replies
- 9 Views
-
Last post by Anonymous
-