【问题标题】:How to bind the same event to different buttons in different frame如何将相同的事件绑定到不同框架中的不同按钮
【发布时间】:2021-04-29 11:43:51
【问题描述】:

我用不同的帧编写了一个应用程序。在每一帧中,都有一个我想绑定到键盘的返回按钮的按钮。当我在特定帧上时,我想按“返回按钮”,按钮返回特定功能。

我试过frame.bind,但它不起作用。

from tkinter import *
from tkinter import ttk

root=Tk()
root.geometry("500x500")


def enter_frame1(event=None):
    Label(my_frame1, text="Say hi").pack()

def enter_frame2(event=None):
    Label(my_frame2, text="Be Happy").pack()

my_notebook=ttk.Notebook(root)
my_notebook.pack(pady=15)

my_frame1= Frame(my_notebook, width=500, height=500)
my_frame2= Frame(my_notebook, width=500, height=500)

my_frame1.pack()
my_frame2.pack()

my_notebook.add(my_frame1, text=1)
my_notebook.add(my_frame2, text=2)

Button(my_frame1, text='Enter', command=enter_frame1).pack()
Button(my_frame2, text='Enter', command=enter_frame2).pack()

my_frame1.bind('<Return>', enter_frame1)
my_frame2.bind('<Return>', enter_frame2)

root.mainloop()

【问题讨论】:

  • 您应该将焦点设置到该特定键。见this tutorial
  • 请查看我的编辑
  • def enter_frame1(event) 更改为def enter_frame1(event=None)。对enter_frame2做同样的事情
  • 但是当我按下回车键时没有结果

标签: python tkinter frame


【解决方案1】:

请尝试在root.mainloop()之前添加以下两行代码

my_frame1.focus()
my_frame2.focus()

请在评论中写下您想要的结果是什么?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-20
    • 2021-04-25
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    • 1970-01-01
    相关资源
    最近更新 更多