我想要一种方法,通过将文本输入到单个文本小部件中,可以将文本插入到两个小部件中。简单来说,在编程中,我想将文本小部件的所有功能和事件绑定到另一个文本小部件。我试过了
txt=Text(root,height=300,width=300)
txt.pack()
text=Text(root,height=300,width=300)
text.pack()
def func(event):
text.delete("1.0","end")
text.insert(INSERT,txt.get("1.0","end"))
txt.bind(func,<Any-KeyPress>)
Run Code Online (Sandbox Code Playgroud)
但这不是一个好的选择,因为它需要时间并且显示出一些延迟,并且当文本变长时会出现较长的延迟。
我遇到了一个我似乎无法理解的错误。我有一个 tkinter Text 小部件,它有一个在文本修改时触发的绑定。由于某种原因,当我使用组合键时,该事件会被触发,尽管它不应该被触发,因为它不会修改文本小部件的内容。
奇怪的部分来了:这只发生在 <Control-o> 上。我编写了一个简单的程序来演示该问题。除了特殊的预先指定的组合键(例如实际修改内容的 <Control-i>)之外,没有其他组合具有这样的行为。
为什么 <Control-o> 会出现这种情况?我该如何预防呢?
import tkinter as tk
root = tk.Tk()
txt = tk.Text(root)
txt.pack()
root.bind("<Control-u>", lambda e: print("doesn't trigger"))
root.bind("<Control-o>", lambda e: print("somehow triggers"))
txt.bind("<<Modified>>", lambda e: print("text got modified!")) # (keep in mind that this will only get triggered once)
Run Code Online (Sandbox Code Playgroud) 我构建了 tkinter 应用程序来发送电子邮件。电子邮件正文应从文本小部件获取具有格式/样式的文本。有没有什么方法可以做到同样的事情。
get 方法仅给出文本,但不给出样式/格式。
我有一个令我烦恼的问题。我目前正在使用 Tkinter GUI 构建一个小型应用程序。
在首页上,我想要一些文本或滚动文本小部件中的介绍性文本。我遇到的代码示例使用 INSERT、CURRENT 和 END 等关键字在小部件内进行索引。
我已将以下代码逐字复制粘贴到编辑器中,但它无法识别 INSERT(抛出错误:“NameError:名称'INSERT'未定义”):
import tkinter as tk
from tkinter import scrolledtext
window = tk.Tk()
window.title("test of scrolledtext and INSERT method")
window.geometry('350x200')
txt = scrolledtext.ScrolledText(window,width=40,height=10)
txt.insert(INSERT,'You text goes here')
txt.grid(column=0,row=0)
window.mainloop()
Run Code Online (Sandbox Code Playgroud)
如果我将 [INSERT] 更改为 [1.0],我可以使代码正常工作,但令人非常沮丧的是,我无法使 INSERT 正常工作,因为我在遇到的每个示例代码中都看到了这一点
下面的代码可以将图像放入文本小部件,但我希望能够检测到它何时被单击,尽管最后一行代码不会生成任何错误,但它也不起作用。
my_image = ImageTk.PhotoImage(file = path)
tag = txtbox.image_create(txtbox.index('insert'), image = my_image)
txtbox.tag_bind(tag, "<Button-1>", on_image_click)
Run Code Online (Sandbox Code Playgroud) 嘿,我希望你们一切都好。我正在 python tkinter 中构建一个视力表软件,其中包含 Opto Charts。在光学图表中,所有字母都直接位于彼此下方。但是当我尝试在 tkinter 中添加标签时,它形成 V 形,因为每行字体大小都在减小。我想占据标签所有可用空间。
我设法使用它来做到这一点 mainFrame.rowconfigure(0, weight=1)
,但它只能使标签达到全宽,而不是其中的文本。我已附上屏幕截图以了解其外观。
在屏幕截图中,您可以看到标签设置为屏幕的全长,但文本呈 V 形,因为字体大小从上到下减小。有没有办法将文本锚定为全宽。换句话说,每个字母表都应该直接位于上面的字母表之下。
我希望我已经说清楚了,如果您需要了解其他信息,请告诉我。