在屏幕边缘放置tkinter窗口

1 投票
1 回答
679 浏览
提问于 2025-04-16 21:06

我想把一个窗口放在屏幕的右边缘。现在的代码是这样的,我觉得常量应该比较容易理解。

root = Tk()
pos_x = root.winfo_screenwidth() - WINDOW_WIDTH
geometry = '{width}x{height}+{pos_x}+{pos_y}'.format(
    height=WINDOW_HEIGHT, width=WINDOW_WIDTH, pos_y=HEIGHT_OFFSET, pos_x=pos_x)
root.wm_geometry(geometry)

问题是,框架的宽度似乎是去掉边框后的可用空间,这就导致我运行上面的代码时,窗口并没有完全显示出来。我试过用root['border'],但它返回的是0,而谷歌对此问题的资料也出奇的少。

那么,有没有办法获取框架的完整大小呢?或者说用tkinter做这个是不是走错了路?

1 个回答

1

问题在于,窗口管理器会绘制窗口的边框,但它并不会告诉你这个边框有多大。

你可以通过设置overrideredirect标志来完全控制窗口,这样做的结果就是你不会再看到窗口管理器绘制的边框了。

不过,也许这个讨论在Tcl'ers的维基上会对你有帮助,因为它讨论了一些找到完整窗口大小的方法。

撰写回答