- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近发现了how to highlight syntax in tkinter text widget使用空闲库。我试过了,我认为用它来制作我的文本编辑器应用程序会很酷。但问题是,当用户选择文本时,过滤器着色的文本不起作用。下面是我正在努力实现的一个小例子:
from tkinter import *
from idlelib.colorizer import ColorDelegator
from idlelib.percolator import Percolator
root = Tk()
txt = Text(root, font=("Courier", 20))
txt.pack()
cdg = ColorDelegator()
cdg.tagdefs['COMMENT'] = {'foreground': '#FF0000', 'background': '#FFFFFF'}
cdg.tagdefs['KEYWORD'] = {'foreground': '#007F00', 'background': '#FFFFFF'}
cdg.tagdefs['BUILTIN'] = {'foreground': '#7F7F00', 'background': '#FFFFFF'}
cdg.tagdefs['STRING'] = {'foreground': '#7F3F00', 'background': '#FFFFFF'}
cdg.tagdefs['DEFINITION'] = {'foreground': '#007F7F', 'background': '#FFFFFF'}
Percolator(txt).insertfilter(cdg)
root.mainloop()
预期结果(只是我使用的 IDE 的屏幕截图,我希望颜色在选中时仍然可见):
实际结果(你可以看到选中的文本't(“Hello Wor'是黑色的,但我不希望它是黑色的,我希望它是它本来的样子):
所以我的目标是不改变所选文本的前景色,无论它被标记为什么颜色。提前致谢。
最佳答案
所以OP是对的。 ColorDelegator
调用 self.tag_raise('sel')
将标签放在顶部,因此 "sel"的
标签代替了其他标签。foreground
选项
如果你这样做:
import tkinter as tk
root = tk.Tk()
txt = tk.Text(root)
txt.pack()
print(txt.tag_config("sel")["foreground"]) # Outputs ('foreground', '', '', '', '#000000')
可以看到tkinter
或tcl
为"sel"
标签设置了一个默认的foreground
选项.要删除它,请使用 txt.tag_config("sel", foreground="")
。
关于python - 当我使用 idlelib 突出显示语法时如何避免更改 tkinter 中选定文本的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73866704/
我最近发现了how to highlight syntax in tkinter text widget使用空闲库。我试过了,我认为用它来制作我的文本编辑器应用程序会很酷。但问题是,当用户选择文本时,
我需要在我的 tkinter 程序中嵌入一个交互式 python 解释器。谁能帮我看看如何整合它? 我已经看过 main() 函数,但它对我的需求来说太复杂了,但我似乎无法在不破坏它的情况下减少它。
我是一名优秀的程序员,十分优秀!