Возможно, есть другой способ, но я бы использовал виджет ScrolledText
, содержащийся в tkinter.scrolledtext
.
from tkinter import *
import tkinter.scrolledText
root = Tk()
root.geometry("1200x1000+30+30")
# width x height + x_offset + y_offset:
T = ScrolledText(root, height=10, width=100)
T.place(x=20, y=30)
for i in range(40):
T.insert(END, "This is line %d\n" % i)
root.mainloop()
. Он автоматически помещает полосу прокрутки в текстовое поле.
С этот ответ Я также получил, что вы можете использовать place
вместо pack
для позиционирования полосы прокрутки, а затем использовать in_=T
:
from tkinter import *
root = Tk()
root.geometry("1200x1000+30+30")
# width x height + x_offset + y_offset:
T = Text(root, height=10, width=100)
T.place(x=20, y=30)
for i in range(40):
T.insert(END, "This is line %d\n" % i)
yscroll = Scrollbar(command=T.yview, orient=VERTICAL)
yscroll.place(in_=T, relx=1.0, relheight=1.0, bordermode="outside")
T.configure(yscrollcommand=yscroll.set)
root.mainloop()