为什么Python Tkinter单选按钮对齐?

时间:2014-01-10 17:56:00

标签: python tkinter

我遇到了单选按钮的对齐问题。我想要三列表单元素。出于某种原因,当我向表单添加单选按钮时,它们似乎占用了左侧新列的空间。我希望有一个简单的网格布局,每个单元格具有相同的大小。情况似乎并非如此。任何建议将不胜感激!

Radio Button Alignment

以下是我的代码的一部分:

    self._mode_state = StringVar()
    self._mode_radio_timelapse = Radiobutton(self, text="Timelapse", command=self._transition(), value=self._timelapse_mode, variable=self._mode_state)
    self._mode_radio_continuous = Radiobutton(self, text="Continuous", command=self._transition(), value=self._continuous_mode, variable=self._mode_state)
    self._mode_radio_ramphold = Radiobutton(self, text="Ramp and Hold", command=self._transition(), value=self._ramp_hold_mode, variable=self._mode_state)
    self._mode_radio_timelapse.grid(row=0, column=0, pady=10)
    self._mode_radio_continuous.grid(row=0, column=1, pady=10)
    self._mode_radio_ramphold.grid(row=0, column=2, pady=10)

    image_set_label = Label(text="Image Set Type: ")
    image_set_label.grid(row=1, column=0, pady=10)
    self._image_set_type = Entry()
    self._image_set_type.insert(0, "Ramp")
    self._image_set_type.grid(row=1, column=1, pady=10, columnspan=2)

1 个答案:

答案 0 :(得分:3)

小部件并非都在同一个网格上。单选按钮专门设置为父self,但您的LabelEntry小部件不是使用任何父级创建的,因此父级默认为根对象。

以下是修复:

image_set_label = Label(self, text="Image Set Type: ") # made self parent
image_set_label.grid(row=1, column=0, pady=10)
self._image_set_type = Entry(self) # made self parent
self._image_set_type.insert(0, "Ramp")
self._image_set_type.grid(row=1, column=1, pady=10, columnspan=2)