如何解决Tkinter:我无法在文本小部件中突出显示文本
因此,我使用tkinter
创建了文本编辑器,并使用tag_config
突出显示了语法。
代码
#Importing modules
from tkinter import *
#Main Window
Window = Tk()
Window.minsize(400,550)
##Main Script
#Defs
#Main frame
main = Frame(Window)
#Main text widget
text = Text(main,bd=0,highlightthickness=0,borderwidth=0,bg="#323232",fg="white")
#Configs
text.config(width=55,height=35)
main.config(width=55,height=35)
#Tag config for coloring syntax
text.tag_configure("import",foreground="yellow")
Window.update()
#Packs and places
#main.place(anchor="c",rely=.5,relx=.5)
main.pack(expand=True,fill=BOTH,side="right")
text.pack(expand=True,fill=BOTH)
#Update window
Window.update()
#Window.mainloop()
Window.mainloop()
问题 tag_configure
在第23行中不起作用text.tag_configure("import",foreground="yellow")
问题
有办法解决吗?还是有什么办法可以在tkinter中突出显示文本?
编辑
我添加
def check_syntax(event):
text.tag_add('import',1.0,END)
text.bind("<Return>",check_syntax)
关于代码,但是当我运行代码并键入时有1个问题
import tkinter
在文本小部件中进行测试,然后按Enter突出显示“ tkinter”
该如何解决?
解决方法
我相信原因是您需要首先使用tag_add函数实际添加标签。您应该阅读另一个具有类似问题的问题。我自己尝试了该代码,它可以工作。 (您必须在完成一行后按Enter键)
How to use tkinter tag_config? Python 3.7.3
, tag_configure
仅配置标签,它不会将标签应用于文本范围。要使用标签,您需要调用tag_add
并为其指定开始和结束索引。那样,或者在调用insert
时添加标签。
例如,这显示了如何插入一些文本,然后将突出显示应用于一些字符:
text.insert("end","import foo\nimport bar\n")
text.tag_add("import","1.0","1.6")
text.tag_add("import","2.0","2.6")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。