Я хочу сделать окно, которое позволяет разделить текстовые экраны в Tkinter. Я также хочу иметь возможность «растягивать» экраны с помощью мыши, поэтому, например, если я хочу, чтобы один из экранов был временно больше другого, я просто перетаскиваю его с помощью мыши.Сделайте растяжимый разделительный экран в Tkinter
Я думал, что смогу разместить виджет «Текст» внутри виджета PanedWindow, так как я думал, что виджет PanedWindow всегда растяжимый, но мой код не совсем выполняет эту работу. Я могу получить разделенные экраны, но они не растяжимы. Вот мой (Ненужный длинный, но простой) код:
from Tkinter import *
root = Tk()
# Seems strange to column- and rowconfigure the root but if I don't -
# the text widgets won't resize at all
for i in range(4):
root.columnconfigure(0, weight=1)
for i in range(1,3):
root.rowconfigure(1, weight=1)
# make a master PanedWindow
m1 = PanedWindow(root)
m1.grid(column=0, row=0, rowspan=4, columnspan=4, sticky=E+N+W+S)
for i in range(4):
m1.columnconfigure(i, weight=1) # Enable vertical resizing
for i in range(1,3):
m1.rowconfigure(i, weight=1) #Enable horizontal resizing
# make a PanedWindow inside m1, positioned to the left
m2=PanedWindow(m1)
m2.grid(column=0, row=1, columnspan=2, rowspan=2, sticky=E+N+W+S)
for i in range(2):
m2.columnconfigure(i, weight=1) # Enable vertical resizing
for i in range(1,3):
m2.rowconfigure(i, weight=1) #Enable horizontal resizing
# make another PanedWindow inside m1, positioned to the right
m3=PanedWindow(m1)
m3.grid(column=2, row=1, columnspan=2, rowspan=2, sticky=E+N+W+S)
for i in range(2, 4):
m3.columnconfigure(i, weight=1) # Enable vertical resizing
for i in range(1,3):
m3.rowconfigure(i, weight=1) #Enable horizontal resizing
# Add a text widget in m2
text1 = Text(m2, height=15, width =15)
m2.add(text1)
# Add another textwidget in m3
text2=Text(m3, height=15, width=15)
m3.add(text2)
root.mainloop()
Это было очень хорошо объяснено, спасибо! – PandaDeTapas