Форум сайта python.su
Почему я не вижу 9 ожидаемых кнопок!?
# -*- coding: utf-8 -*- from tkinter import * root = Tk() root.geometry("342x345") root.resizable(False, False) name=["a","b","c","d","e","f","g","h","i"] def btns(): for i in range(8): ris=Button(root, widtn=13, height=5, bg="green", text=name) for ro in range(3): for co in range(3): ris[i].grid(row=ro, column=co) btns() root.mainloop()
Офлайн
Ох и нарубили.
# coding: utf-8 # from tkinter import * root = Tk() root.geometry("342x345") root.resizable(False, False) name=["a","b","c","d","e","f","g","h","i"] def btns(): for ro in range(3): for co in range(3): ris=Button(root, width=13, height=5, bg="green", text=name.pop(0)) ris.grid(row=ro, column=co) btns() # root.mainloop()
from tkinter import*
Офлайн
Дело в том, что мне необходимо сохранить переменную “i”, так как она используется в комманде command=lambda:click(ris,i).
Офлайн
Нет. Сохранять нет необходимости.
# coding: utf-8 # from Tkinter import * def callback(event): print event.widget["text"] # root = Tk() root.geometry("342x345") root.resizable(False, False) name=["a","b","c","d","e","f","g","h","i"] def btns(): for ro in range(3): for co in range(3): ris=Button(root, width=13, height=5, bg="green", text=name.pop(0)) ris.grid(row=ro, column=co) ris.bind("<Button-1>", callback) btns() # root.mainloop()
# coding: utf-8 # from Tkinter import * # def callback(name): print name # root = Tk() root.geometry("342x345") root.resizable(False, False) name=["a","b","c","d","e","f","g","h","i"] def btns(): for ro in range(3): for co in range(3): text = name.pop(0) ris=Button(root, width=13, height=5, bg="green", text=text) ris["command"] = lambda text=text: callback(text) ris.grid(row=ro, column=co) # btns() # root.mainloop()
Офлайн
Можете пояснить, что есть lambda?
Офлайн
Анонимная функция. Проще почитать у М. Лутца. Я не смогу так объяснить как он
Она просто будет вызываться позднее. Так проще для понимания.
Если же просто связать с callback и написать
ris["command"] = callback(text)
Офлайн
Мне-таки необходимо сохранить “i”. Моя функция клик зависит от button и num, где button- само название кнопки, num- ее номер.
Офлайн
Я вас не понимаю вообще. Что значит “сохранить”? На диск? Вы код, который я дал выполняли?
Хотите передать позицию кнопки в общем списке функцию обработчик? Или что?
Офлайн
Я хочу, чтоб выполнялась эта функция
def click(button, num): global numButton if num not in numButton: global XO question() if XO == 1: XO = 2 else: XO = 1 numButton.append(num) logik()
field = [0, 0, 0, 0, 0, 0, 0, 0, 0] #список значений 1 или 2 XO = 1#крестик - 1, нолик - 2 numButton = [] #список нажатых кнопок #logik()- проверка на выигрыш, проигрыш, ничью
Офлайн
Японский городовой. Это что за … ?
Опишите логику программы. Я помогу построить конструктор.
Офлайн