2017-01-23 6 views
0

В качестве примера для моего вопроса я создаю кнопки на экране. Все кнопки будут иметь ту же самую команду, но они будут размещены в разных координатах в окне (с использованием tkinter). Используя тот же метод определения переменных, таких как:Определение одинаковых, но не равных переменных в одной строке

apple, banana, pear = "fruit" 

Как я мог определить кнопки, каждый с теми же размерами и командами, но с координатой, которая увеличивается. Если бы я должен был определить эти кнопки один за другим, это будет выглядеть так ...

Button1 = Button(root, text= "Button", height = 1, width = 1, command = command, x = 20, y = 50) 
Button2 = Button(root, text= "Button", height = 1, width = 1, command = command, x = 40, y = 50) 
Button3 = Button(root, text= "Button", height = 1, width = 1, command = command, x = 60, y = 50) 

Но есть способ, чтобы определить эти кнопки, используя что-то похожее на цикл? Спасибо.

+0

Класс 'Button' не поддерживает' x' и 'y' аргумент. Как вы ожидаете, что эти координаты будут использоваться? Являются ли они значениями строк/столбцов? значения пикселей? –

+0

Я просто использовал его для быстрого примера, чтобы получить общую идею –

ответ

0

Вы можете перемещаться по списку:

buttons = [] 
for p in [(20,50),(40,50),(60,50)]: 
    buttons += [Button(root, text= "Button", height = 1, width = 1, command = command, x = p[0], y = p[1])] 
1

Используйте список понимание с распаковкой. (Ваш первый пример, кстати, поднимает ValueError.)

Button1, Button2, Button3 = [Button(root, text="Button", height=1, width=1, command=command, x=x, y=y) 
           for x,y in [(20, 50), (40,50), (60,50)]]