首页 > 解决方案 > 将“返回”按钮绑定到 Python 中的按钮

问题描述

我试图让 Return/Enter 键与程序中的“Enter”按钮执行相同的操作。我查看了 StackOverflow 上的其他答案,但没有一个能解决我的问题。

from tkinter import *
from tkinter import messagebox
import random

class Application(Frame):
    def __init__(self, master):
        Frame.__init__(self, master)
        self.grid()
        self.create_widgets()
        self.number = random.randrange(10)
    def create_widgets(self):
        self.guess_lbl = Label(self, text = "Enter a Guess:")
        self.guess_lbl.grid(row = 2, column = 0, sticky = W)

        self.guess_ent = Entry(self, width = 10)
        self.guess_ent.grid(row = 2, column = 1, sticky = W)

        self.submit_bttn = Button(self, text = "Enter", command = self.reveal)
        self.submit_bttn.grid(row = 6, column = 0, sticky = W)
        self.submit_bttn.bind('<Return>', self.reveal)

    def reveal(self):
        guess = self.guess_ent.get()
        if int(guess) == int(self.number):
            messagebox.showinfo("Guessing game ", "Good Guess, that is correct!")

# Main
root = Tk()
root.title("Guessing Game")
root.geometry("300x100")
app = Application(root)
root.mainloop()

标签: pythontkinter

解决方案


您需要将此添加到您的def __init__(self, master)函数中:

master.bind('<Return>', self.reveal)

您需要将def reveal(self):方法更新为:

def reveal(self, event=None):

最后,您需要删除def create_widgets(self):方法下的最后一行。

self.submit_bttn.bind('<Return>', self.reveal)  # delete this

之后,您将能够按Enter键盘上的键,它应该适合您。


推荐阅读