python - 将“返回”按钮绑定到 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()
解决方案
您需要将此添加到您的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键盘上的键,它应该适合您。
推荐阅读
- jbpm - 在业务中心构建项目时出错
- javascript - Highstock:如何在最后一个值之后添加一个空白区域
- python - 根据其他列的字符串创建数据框
- angular - 反转 mat-checkbox 的“选中”值
- jquery - 无法将 API JSON 数据呈现到 vue js 中的表
- c# - 可聚焦值为 false 的 xPath 元素
- javascript - onMount 和事件监听器
- r - 绘制时间序列问题与图形之间的直线
- python - 如何复制文件内容并延迟附加到另一个文件?
- php - 最新版本的 PHP 和 Swiftmailer 会导致以“ATT00001.bin”的形式发送附件 - 为什么会这样?