Radiobutton只显示一个选项

时间:2016-05-30 15:39:02

标签: python user-interface tkinter radio-button

我不确定我做错了什么,但似乎我的单选按钮只显示一个选项而不是两个选项(这是我原来想要的)。

PLAYERS = [("Black", "black"),
           ("White", "white")]

def first_player(self) -> str:

    self.firstplayer = tkinter.StringVar(value = 'black')

    self._player_text = tkinter.StringVar()

    self._player_text.set('Which player moves first: ')

    player_label = tkinter.Label(
            master = self.root_window, textvariable = self._player_text,
            background = 'yellow', height = 1, width = 20, font = DEFAULT_FONT)

    player_label.grid(row=1, column = 0, padx = 10, pady=90, sticky = tkinter.W+tkinter.N)

    for text,mode in PLAYERS:
        first = tkinter.Radiobutton(self.root_window, text = text,
                            variable = self.firstplayer , value = mode)

        first.grid(row = 1, column = 0, padx = 300, pady = 90, sticky = tkinter.W + tkinter.N)

    return self.firstplayer.get()

1 个答案:

答案 0 :(得分:2)

您将两个单选按钮放在同一位置:第1行,第0列。第一个因此不可见,因为它位于第二个下面。如果您希望标签和两个单选按钮位于同一行但不同列,则解决方案是为它们提供相同的行和不同的列。

有很多方法可以实现这一目标,我将向您展示一个:

column = 1
for text,mode in PLAYERS:
    first = tkinter.Radiobutton(self.root_window, text = text,
                                variable = self.firstplayer , value = mode)
    first.grid(row = 1, column = column, sticky = tkinter.W + tkinter.N)
    column += 1