【发布时间】:2017-09-07 08:08:10
【问题描述】:
我的目标是在启动时进行提示,并根据输入的整数,让这些画布适合框架。框架必须具有固定的高度(画布也应该如此),但宽度应根据窗口的大小而变化,并在画布之间平均分布。
这适用于最多 4 个画布,之后画布也不适合最大窗口。
另外,为什么我看不到画布上方和下方的 20 像素空灰色框,因为画布的高度小于框架的高度?
from tkinter import *
from tkinter import simpledialog
b=[]
root = Tk()
no_of_players=simpledialog.askinteger(prompt="Enter here", title="No of participants")
status_frame=Frame(root, bg='gray', height=100)
status_frame.pack(fill=X)
for i in range(no_of_players):
c=Canvas(status_frame, bg="orange")
b.append(c)
b[i].pack(side=LEFT,fill=X, expand=True)
root.mainloop()
编辑
from tkinter import *
from tkinter import simpledialog
b=[]
root = Tk()
no_of_players=simpledialog.askinteger(prompt="Enter here", title="No of participants")
status_frame=Frame(root, bg='gray', height=500)
status_frame.pack(fill=X)
for i in range(no_of_players):
c=Canvas(status_frame, width=1, height=100, bg="orange")
b.append(c)
b[i].pack(side=LEFT,fill=X, expand=True)
root.mainloop()
【问题讨论】:
-
我不明白你的问题。您永远不会设置画布宽度,因此它默认为某个值(在我的机器上为 378 像素)。你认为它没有做什么?
-
@Jonathan 在第二个asnwer 中提出了类似的建议。我基本上希望画布的数量完全填满 X 方向上的框架,即基于画布的数量,即使在调整窗口大小时,它们也应该在它们之间划分可用的框架宽度。
-
我建议你暂时给
status_frame一个独特的颜色,这样你就可以看到它的边缘在哪里。我的猜测是,它们不是你想象的那样。
标签: python user-interface tkinter tkinter-canvas