python tkinter事件处理程序计算器

gc0ot86w  于 2021-09-08  发布在  Java
关注(0)|答案(0)|浏览(199)

我正在用python tkinter制作一个类似于计算器的支付,我不确定我的代码出了什么问题。下面的代码都在一个名为menu的类下。这些代码只是片段,因为我的代码很长。我想要一个可以在键盘上键入数字7并在屏幕上显示的事件。你能告诉我这有什么问题吗?我也可以有最大宽度,可以显示在屏幕上,使该号码将不会接受任何更多的号码?非常感谢。

def Payment(self, top=None):
    top.geometry("850x315+500+200")
    top.resizable(0, 0)
    top.title("Payment")

    pay.bind("<Key>", self.key)

    self.label_1 = Label(pay)
    self.label_1.pack()
    self.labelImage_1 = Image.open("./images/calculator/calc.png")
    self.labelResized_1 = self.labelImage_1.resize((850, 315), Image.ANTIALIAS)
    self.labelImage_1 = ImageTk.PhotoImage(self.labelResized_1)
    self.label_1.configure(image=self.labelImage_1)
    self.label1.configure(background="#ffcc70")

    self.button_1 = Button(pay)
    self.button_1.place(relx=0.57, rely=0.27, width=80, height=50)
    self.button_1.configure(relief="flat")
    self.button_1.configure(overrelief="flat")
    self.button_1.configure(activebackground="#ffffff")
    self.button_1.configure(cursor="hand2")
    self.button_1.configure(foreground="#ffffff")
    self.button_1.configure(background="#303030")
    self.button_1.configure(font="-family {Microsoft New Tai Lue} -size 30 -weight bold")
    self.button_1.configure(anchor="center")
    self.button_1.configure(borderwidth="0")
    self.button_1.configure(text="7")
    self.button_1.configure(command=self.button_1_handler)

    self.display = Entry(pay, font=("Microsoft New Tai Lue", 36, "normal"), width=11)
    self.display.place(relx=0.03, rely=0.42, width=430, height=100)
    self.display.configure(bg="#e6e6e6", fg="grey", relief="flat", state="readonly")
    self.display.configure(relief="flat")

def key(self, event):
    print("pressed", repr(event.char))
    press = event.char
    if press == "7":
        self.button_1.configure(state=ACTIVE)
        self.button_1_handler()

def button_1_handler(self):
    self.display.configure(state="normal")
    self.display.insert("end", "7")
    self.display.configure(state="readonly")

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题