从右侧调整Tkinter窗口大小(python)
我不太确定怎么表达这个问题……
我有一个Tkinter窗口,我需要在按下一个按钮时隐藏这个窗口的一半。
不过,我需要隐藏的是窗口的左边,这样窗口就会变成原来的一半,
只显示原窗口的右半部分。
Tkinter的所有调整大小的功能都是从窗口的左边开始的。
更改窗口的大小只能显示左边的部分,而隐藏右边;
我需要的是相反的效果。
有没有人知道怎么做到这一点?
(我不想让用户去拖动窗口边框,我需要按钮来自动完成这个操作)。
规格:
- Python 2.7.1
- Tkinter
- Windows 7
3 个回答
0
我的IT老师给了我一个建议:
在看不见的地方加一个滚动条,
然后在调整根窗口大小后,
强制滚动条滚动到最右边。
(所以我想我需要创建一个画布,
把所有的控件放到框架里,
再把框架放到画布上,
然后用滚动条来配置画布?)
我不太确定有没有函数可以设置滚动条的当前位置(也就是窗口的x视图),
但我想应该是有的。
还没开始实现这个,不过看起来很有希望。
谢谢你的建议!
2
你可以通过在合适的位置使用负号来实现右对齐的几何规格:
123x467-78+9
不过,我不确定这个方法在Windows上是否有效(上面提到的是X11的技巧,我不知道它是否在平台兼容层中实现了);你可能需要根据左侧的预期大小来计算新的位置,然后使用这个位置。
1
这段代码能达到你想要的效果吗?
import Tkinter as Tk #tkinter
def toggle():
if frame1.winfo_ismapped():
frame1.grid_remove()
else:
frame1.grid()
root = Tk.Tk()
root.geometry('-450+250')
frame1 = Tk.Frame(root, width=200, height=100, bg='red')
frame1.grid(row=0, column=0)
frame2 = Tk.Frame(root, width=200, height=100, bg='blue')
frame2.grid(row=0, column=1)
Tk.Button(root, text='toggle', command=toggle).grid(row=1, column=1)
root.mainloop()