0

当你调用 tkinter 的画布时,你定义了一个高度和宽度:

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

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

有没有办法用一个位置调用画布,以便我可以将它从 Windows OS 中的任务栏偏移(或任务栏重叠的一般问题的另一种解决方案)?

注意:我尝试过:

w.pack(side="top")

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

在窗口中定位画布 - Tkinter/python

4

2 回答 2

2

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

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

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

于 2013-05-19T14:09:26.040 回答
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))
于 2013-05-19T15:21:38.093 回答