python - 如何在 tkinter 的 TextWidget 中获取当前单词
问题描述
假设我有以下TextField
设置tkinter
:
import tkinter as tk
class TextField(object):
def __init__(self, master, **kwargs):
self.master = master
s = tk.Scrollbar(master)
text = tk.Text(master, height = 40, width = 100)
s.pack(side = tk.RIGHT, fill = tk.Y)
text.pack(side = tk.LEFT, fill = tk.Y)
s.config(command=text.yview)
text.config(yscrollcommand=s.set)
text.insert(tk.END, "some string")
text.bind('<Tab>', self.tabbed_text)
self.text = text
def tabbed_text(self, event):
print(event)
# now what to do here?
root=tk.Tk()
tf = TextField(root)
root.mainloop()
如何获取[a-zA-Z0-9_]+
在函数中输入的当前“单词”(即)tabbed_text()
?最终目标是在点击 Tab 时具有某种自动文本功能。
解决方案
您可以像这样使用 self.text.get() 函数。您可以根据需要修改 get 参数。我希望这能帮到您。
class TextField(object):
def __init__(self, master, **kwargs):
self.master = master
s = tk.Scrollbar(master)
text = tk.Text(master, height = 40, width = 100)
s.pack(side = tk.RIGHT, fill = tk.Y)
text.pack(side = tk.LEFT, fill = tk.Y)
s.config(command=text.yview)
text.config(yscrollcommand=s.set)
text.insert(tk.END, "some string")
text.bind('<Tab>', self.tabbed_text)
self.text = text
def tabbed_text(self, event):
print(event)
text = self.text.get("1.0","end")
self.text.insert(tk.END, text)
root=tk.Tk()
tf = TextField(root)
root.mainloop()
推荐阅读
- java - 在 Java 中创建自定义数据结构并希望将元素添加到列表的末尾而不是开头
- python - 基于 Python tile 的 numpy 数组处理
- html - 将表单输入中的 + 替换为 -
- python - 无法识别用户何时在带有 Zelle 图形的圆圈内单击
- javascript - 如何在功能组件中将下一个输入集中在按 Enter 键上?(TAB 行为)
- python - 成功在 Azure 上部署 Flask 应用程序,但应用程序在打开网站时无法运行
- android - Flutter Build Apk 错误“未解决的参考:snackbar”
- javascript - 我如何能够在两行中显示标题,每行的字体大小不同?
- aws-lambda - DynamoDB 更新数据有效但返回内部服务器错误
- jquery - 防止点击时触发下拉菜单