0

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

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

我的问题归结为:有没有办法让用户界面根据高度构建自己(就像没有几何方法一样)并且只建立与屏幕一样宽的宽度?可能对线条进行修改, root.geometry("{}x{}+0+0".format(width,height)) 以便高度保持未设置并且可以自由移动。

4

1 回答 1

-1

您可以使用

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

于 2020-10-16T20:09:37.363 回答