猿问

tkinter 中是否有一些新的返回键关键字?

我正在制作一个计算器,我绑定了 = 按钮以返回按键,但它不起作用。我已将按钮绑定到相同的函数以及单击函数


def equal():

    if screenVal.get().isdigit():

        value = int(screenVal.get())

    else:

        try:

            value = eval(screenVal.get())

        except Exception:

            value = "Err"


    screenVal.set(value)

    screenEnt.update()



def click(event):

    global screenVal

    text = event.widget.cget("text")

    if text == "=":

        if screenVal.get().isdigit():

            value = int(screenVal.get())

        else:

            try:

                value = eval(screenVal.get())

            except Exception:

                value = "Err"


        screenVal.set(value)

        screenEnt.update()


    elif text == "C":

        screenVal.set("")

        screenEnt.update()

    else:

        screenVal.set(screenVal.get() + text)

        screenEnt.update()


    b = Button(frame, text="=",  padx=10, pady=10, font="consolas 15 bold", width=3, command=equal)

    b.pack(side=LEFT)

    b.bind('<Return>', click)

有人可以帮忙吗?我正在 AMD 64 上开发 python 3.7.9


梦里花落0921
浏览 114回答 1
1回答

富国沪深

import tkinter as tkroot=tk.Tk()def equal():&nbsp; &nbsp; print('equal')def click(event):&nbsp; &nbsp; print('click')b = tk.Button(root, text="=",&nbsp; padx=10, pady=10, font="consolas 15 bold", width=3, command=equal)b.pack(side='left')b.bind('<Return>', click)root.mainloop()如果运行此脚本,该equal命令将按预期工作。您的问题似乎是您无法执行绑定return。仅当键盘焦点位于该按钮上时才会发生该事件,尝试按 Tab 直到按钮获得焦点。解决方案可能是将其绑定到框架上,甚至更好地绑定到窗户上。就像下面的例子一样。import tkinter as tkroot=tk.Tk()def equal():&nbsp; &nbsp; print('equal')def click(event):&nbsp; &nbsp; print('click')b = tk.Button(root, text="=",&nbsp; padx=10, pady=10, font="consolas 15 bold", width=3, command=equal)b.pack(side='left')root.bind('<Return>', click)root.mainloop()
随时随地看视频慕课网APP

相关分类

Python
我要回答