用一个位置调用tkinter的画布

时间:2013-05-19 14:02:26

标签: python windows canvas tkinter

当您调用tkinter的画布时,您可以定义高度和宽度:

w = Canvas(master, width=ScreenWidth, height=ScreenHeight)

为此,我首先获得用户的屏幕分辨率,然后将其用于高度和宽度。 但是,在Windows系统上,这与任务栏重叠。所以我试着通过缩短高度来解决这个问题。不幸的是,Canvas是从底部定义的,所以这只是向下切割画布的顶部,而不是自下而上。理想情况下,我只需在整个画布周围切割整个任务栏大小的块,以便将将任务栏放在其他位置的用户负责。

有没有办法用一个位置调用canvas,这样我就可以将它从windows OS中的任务栏中偏移(或者任务栏重叠的一般问题的另一个解决方案)?

注意:我试过了:

w.pack(side="top")

以下类似的问题似乎对我的情况没有帮助

Positioning Canvas in window - Tkinter/python

2 个答案:

答案 0 :(得分:2)

无法相对于屏幕上的任何位置放置画布,本身。画布不是独立的窗口。你所能做的就是将它放在相对于它包含窗口的某个地方。

但是,您可以使用Toplevel方法绝对控制最顶层窗口(Tk的实例或geometry的实例)。该方法允许您指定窗口的宽度和高度,以及窗口在屏幕上的位置。

因此,如果您尝试将画布放在特定位置,则必须将窗口放在该位置,然后确保画布填满窗口。

答案 1 :(得分:0)

如同@Bryan Oakley所说,将它定位在中心位置,请使用以下内容:

# note: 'master' is a tk.Toplevel() or a tk.Tk()

w = Canvas(master, width=ScreenWidth, height=ScreenHeight)
w.pack()

master.geometry("+{xPos}+{yPOS}".format(xPos = 0, yPos = 0))