使用python-tkinter设置根窗口的单一尺寸的方法?

问题描述

我希望窗口占据屏幕的宽度,而不占据屏幕的高度。我已经建立并工作了根,但据我所知,几何方法至少需要宽度和高度,而不是一个或另一个。我希望窗口随着小部件的添加/删除而继续在高度上动态缩放。笔记本标签和按钮的起始高度为

没有下面显示的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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...