How to set custom color for symbols like*,#,etc in python tkinter(如何在pythontkinter中设置*、#等符号的自定义颜色)
本文介绍了如何在pythontkinter中设置*、#等符号的自定义颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何为、#等某些符号设置特定颜色‘ 例如,如果我键入";";,则其颜色应为蓝色,而其他颜色保持不变。
TypeDecker先生,我绑定您的功能是这样的,但这不起作用
from tkinter import*
root = Tk()
def check_for_symbols(symbol_dict) :
for i in symbol_dict :
text.tag_remove(i, '1.0', END)
pos = 1.0
while 1:
pos = text.search(i, pos, regexp = True, stopindex = END)
if not pos:
break
last_pos = '%s+%dc' % (pos, len(i)) # The only change
text.tag_add(i, pos, last_pos)
pos = last_pos
text.tag_config(i, foreground = symbol_dict[i])
root.after(1000, lambda:check_for_symbols(symbol_dict))
return
symbol_dict = {
"*":"blue"
}
text = Text(root, background = "gray19", foreground = "white", insertbackground = 'white',font="Consolas 15 italic")
text.pack(expand=True,fill=BOTH)
root.after(1000, lambda : check_for_symbols(symbol_dict))
root.mainloop()
推荐答案
可以遵循与单词hereby Me相同的步骤,唯一的变化是用于检测符号的正则表达式。
last_pos = '%s+%dc' % (pos, len(i)) # The only change
包含必要更改的完整check_for_symbols函数将如下所示-:
def check_for_symbols(symbol_dict) : # pass symbol dict as argument using lambda construct.
# symbol dict format-: {keyword : color}
for i in symbol_dict :
text.tag_remove(i, '1.0', tk.END)
pos = 1.0
while 1:
pos = text.search(i, pos, regexp = True, stopindex = tk.END)
if not pos:
break
last_pos = '%s+%dc' % (pos, len(i)) # The only change
text.tag_add(i, pos, last_pos)
pos = last_pos
text.tag_config(i, foreground = symbol_dict[i])
root.after(1000, check_for_symbols)
return
这篇关于如何在pythontkinter中设置*、#等符号的自定义颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
编程基础网
本文标题为:如何在pythontkinter中设置*、#等符号的自定义颜色
基础教程推荐
猜你喜欢
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
- Discord.py 缺少必需的参数 2022-01-01
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- 尝试制作WhatsApp机器人 2022-01-01
- 将 x 轴刻度更改为自定义字符串 2022-01-01
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
