微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Tkinter 使用键将字符串添加到文本对象

如何解决Tkinter 使用键将字符串添加到文本对象

我有一个 Tkinter 脚本,它定义了两个文本对象, 我需要当从键盘上按下一个键时,让我们说键“A” 程序在我正在使用的文本对象中写入“A”,我如何检测我正在使用的文本对象是什么?

import tkinter as tk
import tkinter.scrolledtext as scrolledtext

root = tk.Tk()
root.geometry("900x900") 
root.minsize(height = 900,width = 900) 
root.title("Title")
label1 = tk.Label(root,text = "A:",font = ("consolas",16),width = 60)
label1.grid(row = 0,column = 0)
codeinput1 = scrolledtext.ScrolledText(root,height = 10,width = 60,undo = True)
codeinput1["font"] = ("fira code","15")
codeinput1.grid(row = 1,column = 0)
label2 = tk.Label(root,text = "B:",width = 60)
label2.grid(row = 2,column = 0)
codeinput2 = scrolledtext.ScrolledText(root,undo = True)
codeinput2["font"] = ("fira code","15")
codeinput2.grid(row = 3,column = 0)
root.mainloop()

这是我的代码,我如何实现以下内容

在使用该程序时,假设我正在使用两个 TextObjects 之一进行书写,当我按下“Control+F”键时,它会在我正在使用的 TextObjects 的文本中添加“A”?

解决方法

您可以使用bind方法来使用Ctrl+F

def insert_text(event):
    codeinput2.insert(tk.END,'A')
    codeinput1.insert(tk.END,'A')
root.bind("<Control-f>",insert_text)
root.mainloop()

如果要添加到当前的,可以将scrolledtext.ScrolledText绑定到Left Button,然后再绑定:

import tkinter as tk
import tkinter.scrolledtext as scrolledtext

root = tk.Tk()
root.geometry("900x900") 
root.minsize(height = 900,width = 900) 
root.title("Title")

label1 = tk.Label(root,text = "A:",font = ("consolas",16),width = 60)
label1.grid(row = 0,column = 0)

codeinput1 = scrolledtext.ScrolledText(root,height = 10,width = 60,undo = True)
codeinput1["font"] = ("fira code","15")
codeinput1.bind("<ButtonPress-1>",lambda event: codeinput1.bind("<Control-f>",insert_text))
codeinput1.grid(row = 1,column = 0)

label2 = tk.Label(root,text = "B:",width = 60)
label2.grid(row = 2,column = 0)

codeinput2 = scrolledtext.ScrolledText(root,undo = True)
codeinput2["font"] = ("fira code","15")
codeinput2.bind("<ButtonPress-1>",lambda event: codeinput2.bind("<Control-f>",insert_text))
codeinput2.grid(row = 3,column = 0)

def insert_text(event):
    event.widget.insert(tk.END,'A')

root.mainloop()

参见 binddocumentation

请参阅 virtual events 以了解 tkinter

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。