第二个框是用户输入,第三个框是必须显示前两个数字的乘积。
但是我是一个错误的“事件”对象,没有属性“ e3”
请帮助
from tkinter import *
class Calculator(Frame):
def Widgets(self):
self.e1 = Entry(self)
self.e1.grid(row=1, column=1)
self.e1.insert(0,1)
self.e3 = Entry(self)
self.e3.grid(row=1, column=3)
def estimation_value_1(self):
self.e3.insert(0, ((e1.get())*(e2.get())))
self.e2 = Entry(self)
self.e2.grid(row=1, column=2)
self.e2.bind("<Return>", estimation_value_1)
def __init__(self,initial):
super(Calculator,self).__init__(initial)
self.grid()
self.Widgets()
Window = Tk()
Window.title("Error")
Window.geometry("500x500")
Evaluation_Tool = Calculator(Window)
Window.mainloop()
答案 0 :(得分:0)
def estimation_value_1(self):
self.e3.insert(0, ((e1.get())*(e2.get())))
回调函数estimation_value_1
的第一个参数是KeyPress事件。在您的函数中,self是KeyPress事件,而不是Calculator对象。
您可以通过以下方式实现:
def estimation_value_1(event):
self.e3.insert(0, ((self.e1.get())*(self.e2.get())))
答案 1 :(得分:0)
现在您可以按照尹的建议进行操作了。但是,需要稍作修正。只需将e1.get和e2.get转换为float即可使其工作
(from item in searcher.Get().Cast<ManagementObject>()
where ((UInt32?)item["ProcessId"]).HasValue && ((UInt32?)item["ProcessId"]).Value == processID
select new Win32Process()
{
ExecutablePath = System.Convert.ToString(item["ExecutablePath"]),
ProcessId = (UInt32?)item["ProcessId"],
}).ToArray();