【问题标题】:How do I make the size of my widgets or my Frame proportional to the window?如何使小部件或框架的大小与窗口成比例?
【发布时间】:2017-09-05 06:01:25
【问题描述】:

正如标题所说,我想知道如何使我的小部件或我的框架的大小与窗口成比例。

【问题讨论】:

  • 这个问题太宽泛了。有很多方法可以使小部件的大小成比例。您应该学习基本的 tkinter 教程,以便了解将小部件添加到窗口的三种基本方法:pack、grid 和 place。所有人都可以选择做你想做的事。

标签: python tkinter


【解决方案1】:

您可以使用grid 几何管理器,同时通过frame.grid_rowconfigure 和frame.grid_columnconfigure 方法为您的行和列赋予非零权重。

感谢 Brian Oakley 的 this answer。

【讨论】:

    【解决方案2】:

    如果您说的是随着窗口大小的增加,我有两种方法可以做到这一点。请从以下示例中选择适合您要求的一种:

    1) 当您更改主窗口的大小时,此方法会更改框架的尺寸。请注意,fill=BOTH 和 expand=True 参数仅与 pack 方法一起使用。您可以使用padx 和pady 使小部件小于主窗口,但请记住,其他小部件将与您的小部件保持相同的距离。
    请注意,padx 和 pady 仅适用于 pack 和 grid 方法。

    from tkinter import *
    root = Tk()
    myframe = Frame(root)
    myframe.pack(fill=BOTH, expand=True)
    root.mainloop()
    

    2) 使用此方法,您可以根据需要更改小部件的尺寸。您可以使小部件的宽度与主窗口的宽度或高度成比例,或两者兼而有之。如果您希望随窗口的尺寸一起更改小部件的尺寸,您也可以做一些简单的加/减,除了小部件的尺寸将小于主窗口。您可以将padx 和pady 作为参数传递以使小部件小于窗口,但请记住,其他小部件将与您的小部件保持相同的距离。
    请注意,padx 和 pady仅与 pack 和 grid 方法一起使用。

    from tkinter import *
    root = Tk()
    myframe = Frame(root)
    myframe.pack() #in this technique, you can use any method (pack/place/grid). 
                   #because it's not important which method you use to put your 
                   #widgets into the window if you use this technique.
    root.update()
    myframe.config(width=root.winfo_width()) #doing this will keep the width of your frame
                                             #proportional to the width of the main window.
                                             #you can do the same with the height.
    

    【讨论】:

      猜你喜欢
      • 2018-02-10
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多