【发布时间】:2020-05-03 13:59:25
【问题描述】:
我正在尝试用文本小部件和滚动条填充框架。
我无法让文本填满框架,我尝试了许多不同的方法和我在网上看到的东西。
问题是我使用的是 place(),而大多数教程和 asnwers 都是关于 grid()。
这是我的代码:
# --- frame 5 - SERIAL PRINTOUT ---
frame5 = tk.Frame(root, bg='#80c1ff', bd=5)
frame5.place(relx = 0, rely = 0.4, relwidth = 1, relheight = 0.4)
scrollbar = tk.Scrollbar(frame5)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
scrollbar.config(command=log.yview)
log = tk.Text ( frame5, width=30, height=30, takefocus=0)
log.pack()
# attach text box to scrollbar
log.config(yscrollcommand=scrollbar.set)
# --- frame 5 - SERIAL PRINTOUT ---
增加宽度和高度不是我想要的,因为修改父框架也会让我能够修改文本小部件。 是不是有一种方法,或者设置让它自动填充父框架?
【问题讨论】:
-
你为什么使用
place?pack是更自然的选择。不过,从代码log.pack()来看,您似乎使用的是pack而不是place。 -
我使用 place 因为这是我第一次做 GUI,我不想在 GUI 本身上浪费太多时间。因为我的 GUI 有很多框架,我不知道如何使用 pack() 将它们全部放置,将它们放在另一个之下,而不是使用 place() 我正在硬编码它们的位置。
-
如果您确实想填充框架,那么使用
place()没有多大意义,因为不会有多个小部件可以处理。你应该只使用.pack(side = LEFT)和.pack(side = RIGHT) -
@TheFluffDragon9 你的意思是 log.pack(side = tk.LEFT, side = tk.RIGHT)?这行得通吗?
-
@TheFluffDragon9 还是两个不同的命令?
标签: python tkinter text widget