Я попытался сделать следующую программу: при открытии программы она показывает запись и кнопку с надписью «9». Символ «9» добавляется в конце записи при нажатии кнопки «9».Tkinter - кнопка, которую я сделал, не работает
Код, приведенный ниже, я написал, но он не работает так, как я предполагал. Кнопка не работает, и запись показывает «09», а не «0».
# -*- coding : utf-8 -*-
import Tkinter as Tk
class calculator:
def __init__(self, master):
self.num = Tk.StringVar()
self.opstate = None
self.tempvar = 0
# entry
self.entry = Tk.Entry(root, textvariable = self.num, justify=Tk.RIGHT, width = 27)
self.entry.pack(side = Tk.TOP)
self.num.set("0")
# Buttons
self.numbuts = Tk.Frame(master)
self.ins9 = Tk.Button(self.numbuts, text = "9", width = 3, command = self.fins(9))
self.ins9.pack()
self.numbuts.pack(side = Tk.LEFT)
##### Functions for Buttons #####
def fins(self, x):
self.entry.insert(Tk.END, str(x))
root = Tk.Tk()
calc = calculator(root)
root.mainloop()
Я предполагаю, что часть command = self.fins(9)
проблематично, но я не знаю, как решить. Спасибо за любую помощь.
Спасибо за ваш ответ, но я до сих пор не понимаю, потому что я, возможно, не ясно, не понять основные концепции объектно-ориентированного программирования. Есть ли хорошие ссылки для понимания ООП? (Если возможно, предпочитают корейские книги, но это не имеет значения.) –
@tetori, вам нужно передать функцию обратного вызова, а не возвращаемое значение вызова функции. Это не связано с ООП. – falsetru