【问题标题】:Avoiding Tkinter OptionMenu button resizing避免 Tkinter OptionMenu 按钮调整大小
【发布时间】:2013-08-05 23:34:43
【问题描述】:

我有以下选项菜单:

self.textoprioridad = Label(self.frameTwo, text = "Prioridad: ", justify="center")
self.textoprioridad.grid(row=n, column=4)
var2 = StringVar()
menu2 = OptionMenu(self.frameTwo, var2, "Primera pieza", "Esta semana", "Normal", "Baja")
menu2.grid(row=n, column=5, ipadx=10)
var2.set("Primera pieza")
self.optionmenus_prioridad.append((menu2, var2))

显示如下:

问题是,如果我从列表中选择 Normal,按钮会调整大小并变小:

我想知道是否有任何方法可以使 OptionMenu 按钮保持初始大小,如下所示:

提前致谢。

【问题讨论】:

    标签: python button tkinter optionmenu


    【解决方案1】:

    通过config(width=desired-width)指定宽度:

    menu2.config(width=20)
    

    【讨论】:

      【解决方案2】:

      一种解决方案是通过指定width 属性为小部件指定特定大小:

      menu2.configure(width=20)
      

      另一种解决方案是让小部件“粘”在其容器的侧面:

      menu2.grid(row=n, column=5, ipadx=10, sticky="ew")
      

      使用第二个选项,小部件仍然可以调整大小,但它们受到所在列的大小的限制。如果调整大小,它们都会调整大小,保证它们的大小始终一致。

      【讨论】:

        【解决方案3】:

        grid 方法中指定一个sticky,以便它知道需要多宽:

        button.grid(sticky="WE")
        

        此方法比在grid 方法中指定一组width 更好,因为这意味着小部件将始终跨越列的长度。

        sticky 是一个键,它显示小部件也将粘贴在哪里。如果您说sticky='W',那么该小部件将贴在该列的左侧。通过制作是EW,它将粘在左右两侧,因此将其自身拉伸到列的长度。 注意:这是东南西北

        【讨论】:

        • 更好的方法... 然后呢? 请记住,答案可能不会按照您看到的顺序显示,所以如果您指的是其他答案,你需要更具体。
        猜你喜欢
        • 1970-01-01
        • 2017-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-30
        • 2015-03-16
        • 1970-01-01
        相关资源
        最近更新 更多