В маленьком графическом приложении ниже. Когда я использую параметр команды кнопки для вызова функции. Он не работает следующим образом: self.update()
скорее он работает следующим образом: self.update
. Почему так? Есть ли какой-то особый способ, которым управляет опция команды? Я думаю, что метод или функция должна быть вызвана с этими скобками ()
, если это не свойство:кнопка command option in tkinter
т.е.
@name.setter:
def setter(self, name):
self.name = name
#main
object.name = "New_obj"
Примечание: выше только шаблон, так что вы можете получить мою точку зрения. Я не написал полный действительный код. Включая класс и все остальное.
from tkinter import *
class MuchMore(Frame):
def __init__(self, master):
super(MuchMore,self).__init__(master)
self.count =0
self.grid()
self.widgets()
def widgets(self):
self.bttn1 = Button(self, text = "OK")
self.bttn1.configure(text = "Total clicks: 0")
self.bttn1["command"] = self.update # This is what I am taking about
self.bttn1.grid()
def update(self):
self.count += 1
self.bttn1["text"] = "Total clicks" + str(self.count)
#main
root = Tk()
root.title("Much More")
root.geometry("324x454")
app = MuchMore(root)
Это потому, что вы передаете функцию как аргумент, который нужно распаковать и вызвать. Помните, что функции - это объекты! –