Python Tkinter Checkbutton与其他小部件的对齐

时间:2018-06-14 07:43:59

标签: python tkinter widget

所以我在框架小部件中有一些tkinter复选框,它们应该相互对齐。我想用网格然后使用sticky =' w'应尽可能将它们与最远的列对齐。所以说,要使复选框方块对齐。相反,这种情况发生了(缓解只是为了查看checkbutton小部件的边界):

Image of GUI

在我看来,小部件的文档没有提供设置它的功能。随着网格的粘性,我不确定它是否应该是功能。实际上,这一专栏中的浮雕显示其粘性......

这是我的代码示例:

    def init_checkboxes(self):
    """
    Creates all checkboxes for this particular frame subclass.
    """
    self.bvar_cbx_showplots = tk.BooleanVar(value=False)
    self.cbx_showplots = tk.Checkbutton(self.lblframe, width=20,
                                        text='Show Plots after run',
                                        variable=self.bvar_cbx_showplots,
                                        relief='groove')
    self.cbx_showplots.grid(row=1, column=2, sticky='W')
    self.bvar_cbx_saveres = tk.BooleanVar(value=True)
    self.cbx_saveres = tk.Checkbutton(self.lblframe, width=20,
                                      text='Save simulation results',
                                      variable=self.bvar_cbx_saveres,
                                      relief='groove')
    self.cbx_saveres.grid(row=2, column=2, sticky='W')

编辑:Second attempt from Reblochon

1 个答案:

答案 0 :(得分:0)

使用anchor

  

锚=
  控制按钮中文本(或图像)的位置。使用 N NE E SE S SW W NW CENTER。默认为 CENTER 。如果你改变这个,那么使用 padx 和/或 pady 选项添加一些填充也是个好主意。 (锚/锚)

import tkinter as tk

root = tk.Tk()

bvar_cbx_showplots = tk.BooleanVar(value=False)
cbx_showplots = tk.Checkbutton(root, width=20,
                               text='Show Plots after run',
                               variable=bvar_cbx_showplots,
                               relief='groove', anchor='w')
cbx_showplots.grid(row=1, column=2, sticky='W')

bvar_cbx_saveres = tk.BooleanVar(value=True)
cbx_saveres = tk.Checkbutton(root, width=20,
                             text='Save simulation results',
                             variable=bvar_cbx_saveres,
                             relief='groove', anchor='w')
cbx_saveres.grid(row=2, column=2, sticky='W')

root.mainloop()