Ссылка на нажатую кнопку - PullRequest
0 голосов
/ 10 января 2020

Я хотел сделать простой python проект с использованием tkinter. На экране мне нужны 81 кнопка, поэтому я подумал, что самый простой способ сделать это - двойной цикл «для», но когда нажата одна из кнопок, мне нужно настроить ее текст, но я не знаю, как обращаться к Это. Спасибо за ответы. Вот мой взгляд на проект:


from tkinter import *

root = Tk()
root.geometry("700x400")
root.title = "go"
lista=[]
def buttonfunction():
    configure(text="t")

for i in range(9):
    for e in range(9):

        Button(root, text="a", command = buttonfunction).grid(row = e, column = i)

1 Ответ

0 голосов
/ 10 января 2020

Вы можете назначить функцию с аргументом, используя lambda, но чтобы использовать кнопку, вы должны сделать это после создания этой кнопки.

Вы также должны использовать x=btn (если вы запустите его в l oop), чтобы скопировать значение из btn в новую переменную x. Без этого все command будут иметь доступ к одной и той же (последней) кнопке.

def buttonfunction(widget):
    widget["text"] = "t"

btn = Button(root, text="a")
btn["command"] = lambda x=btn:buttonfunction(x)
btn.grid(...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...