Pyt*_*yte 3 python tabs text tkinter
我已经搜索并花了大约两个小时试图自己解决这个问题,但我的努力失败了。我的目标是在文本框中键入一条消息,按 Tab 键转到电子邮件按钮,然后按 Enter 发送电子邮件。
现在,在文本字段中按 Tab 键会创建字处理器样式的缩进,而不是移动到下一个字段。
代码的相关部分是这样的:
from tkinter import *
#Build Window
def focus():
b.focus_set()
window = Tk()
window.title("What's Your Message?")
window.configure(background="black")
Label (window, text="Type Your Message:\n", bg="Black", fg="white", font="none 25 bold").pack(anchor=N)
e = Text(window, width=75, height=10)
e.pack()
e.focus_set()
e.bind("<Tab>", lambda e: focus())
b = Button(window, text="Send Email", takefocus=True, font="none 15 bold", width=10, command=lambda: click())
b.bind("<Return>", lambda e: click())
b.bind("<Tab>", lambda e: focus())
b.pack()
Run Code Online (Sandbox Code Playgroud)
你能告诉我如何让标签按钮不再在文本框中缩进文本,而是将焦点移到按钮上吗?现在, SHIFT + TAB 有效,但我想了解如何仅按 TAB 即可工作。
感谢您的时间和帮助!
Shift-tab 用于反向遍历。
我认为以下页面对您有用:http : //infohost.nmt.edu/tcc/help/pubs/tkinter/web/focus.html
从这个页面,有一段可以帮助你,
总结一下:要设置小部件的焦点遍历顺序,请按该顺序创建它们。通过将其 takefocus 选项设置为 0 来从遍历顺序中删除小部件,对于那些默认的 takefocus 选项为 0 的小部件,如果要将它们添加到顺序中,请将其设置为 1。
*编辑:看起来像将焦点从一个文本小部件更改为另一个的副本
**Edit2:所以......从上面的stackoverflow帖子中获取,以下内容将完全符合您的要求:
def focus_next_widget(event):
event.widget.tk_focusNext().focus()
return("break")
window = Tk()
window.title("What's Your Message?")
window.configure(background="black")
Label (window, text="Type Your Message:\n", bg="Black", fg="white", font="none 25 bold").pack(anchor=N)
e = Text(window, width=75, height=10)
e.bind("<Tab>", focus_next_widget)
Run Code Online (Sandbox Code Playgroud)