python - Tkinter 使用按钮或按键调用功能
问题描述
我需要创建一个函数,当我按下 GUI 的一个按钮或按下像 ENTER 之类的键时,它就会启动。这是可能的?我已经创建了执行这两种情况之一的单个函数,我可以合并它们吗?我附上代码以便更好地理解
LoginWindow = tk.Tk() #code of function with button
canvas = tk.Canvas(LoginWindow, width=480, height=120, bg='lightsteelblue2', relief='raised')
canvas.pack()
def getLogin():
tk.messagebox.showinfo("Hello", "Hello")
LogButton = tk.Button(text="Login", command=getLogin, bg='green', fg='white', font=('helvetica', 12, 'bold'))
canvas.create_window(240, 60, window=LogButton)
LoginWindow.mainloop()
####
####
LoginWindow = tk.Tk() #code of function with ENTER key
canvas = tk.Canvas(LoginWindow, width=480, height=120, bg='lightsteelblue2', relief='raised')
canvas.pack()
def getLogin(event):
tk.messagebox.showinfo("Hello", "Hello")
LoginWindow.bind('<Return>', getLogin)
LoginWindow.mainloop()
有一种方法可以结合这两个功能
解决方案
您可以像这样更改函数签名:
def getLogin(event=None):
tk.messagebox.showinfo("Hello", "Hello")
然后可以在两种不同的情况下调用相同的函数。
推荐阅读
- python - 如何使用 seaborn 绘制 OPTICS 聚类结果?
- python - 创建 Azure Blob 服务容器并使其公开可读
- azure-keyvault - 如果可能的话,如何在 terraform 中添加“存档到存储帐户”?
- github - 如何从子目录运行多个 GitHub Actions 工作流
- javascript - 为更新设置选定的下拉值
- javascript - VUE -axios GET 不执行
- java - JAVA 打印正确的输出,但出现错误 [[I@6acbcfc0 in MATRIX-ADDITION
- c++ - C++ qt 在我们有条件时将重复数据插入到 sqlite
- python - 最小化python目录/模块
- spring - Spring注册后通过电子邮件发送激活码