问题描述
我希望窗口占据屏幕的宽度,而不占据屏幕的高度。我已经建立并工作了根,但据我所知,几何方法至少需要宽度和高度,而不是一个或另一个。我希望窗口随着小部件的添加/删除而继续在高度上动态缩放。笔记本标签和按钮的起始高度为
没有下面显示的ReaderUI类的其余代码,这就是到目前为止的主要方法……
def main():
root=Tk()
tab_control = ttk.Notebook(root)
first_tab = ttk.Frame(tab_control)
tab_control.add(tab1,text="File 1")
tab_control.pack(expand=1,fill="both")
new_tab_button = Button(tab,text="create new tab",command = lambda: new_tab(tab_control))
new_tab_button.pack(padx = 5,pady = 5)
newUI = ReaderUI(tab1)
width=root.winfo_screenwidth()
height = root.winfo_screenheight()
root.geometry("{}x{}+0+0".format(width,height)
root.resizable(False,False)
root.mainloop()
我的问题可以归结为:有没有一种方法可以让UI根据高度来构建自身(就像没有适当的几何方法那样)并且仅建立与屏幕一样宽的宽度?可能会对生产线进行修改
root.geometry("{}x{}+0+0".format(width,height))
这样就可以保持高度不变并且可以自由移动。
解决方法
您可以使用
winfo_screenwidth -返回十进制字符串,以像素为单位给出窗口屏幕的宽度。
代码
root.winfo_screenwidth()
root是您的Tk()
实例
然后您可以使用来锁定x轴
root.resizable(False,True) # (X,Y)
资源 https://www.astro.princeton.edu/~rhl/Tcl-Tk_docs/tk8.0a1/winfo.n.html