2016-05-30 6 views
0

Я не уверен, что я делаю неправильно, но кажется, что мой радиообъект показывает только один вариант вместо двух вариантов (чего я и хотел).Radiobutton показывает только один вариант

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

'-> str' незаконна синтаксис. Что вы ожидаете от этого? Кроме того, tkinter не имеет класса с именем 'Root'; что вы ожидаете 'tkinter.Root()' делать? –

ответ

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 
+0

Даже если я переключу номера, чтобы сказать строку 2 col 1, она все еще показывает белый цвет. – accelerate

+0

Я удалил строку и оставил там столбец и изменил padx, pady на 0, но теперь он остается внизу, а не там, где я хочу. – accelerate

+0

padx и pady не имеют ничего общего с проблемой. Каждому переключателю требуется другая строка и/или столбец. –

Смежные вопросы