在屏幕边缘放置tkinter窗口
我想把一个窗口放在屏幕的右边缘。现在的代码是这样的,我觉得常量应该比较容易理解。
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的维基上会对你有帮助,因为它讨论了一些找到完整窗口大小的方法。