Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Tkinter标签的优先级_Python 3.x_Tkinter_Priority Queue - Fatal编程技术网

Python 3.x Tkinter标签的优先级

Python 3.x Tkinter标签的优先级,python-3.x,tkinter,priority-queue,Python 3.x,Tkinter,Priority Queue,我知道这是一个重复的问题,但另一个问题没有一个有效的答案,有点让人困惑 将标记添加到tkinter文本小部件时,第一个标记将获得优先级。如果最新添加的标签获得优先权,我会更喜欢它。在我的最小可复制示例中: import tkinter as tk win = tk.Tk() txt = tk.Text(win) txt.grid(row=0, column=0) txt.insert('1.1', 'Hello Very Worldy World!') txt.tag_add('tago

我知道这是一个重复的问题,但另一个问题没有一个有效的答案,有点让人困惑

将标记添加到tkinter文本小部件时,第一个标记将获得优先级。如果最新添加的标签获得优先权,我会更喜欢它。在我的最小可复制示例中:

import tkinter as tk

win = tk.Tk()

txt = tk.Text(win)
txt.grid(row=0, column=0)

txt.insert('1.1', 'Hello Very Worldy World!')

txt.tag_add('tagone', '1.2', '1.4')
txt.tag_config('tagone', foreground='yellow')

txt.tag_add('tagtwo', '1.7', '1.13')
txt.tag_config('tagtwo', foreground='purple')

txt.tag_add('tagone', '1.6', '1.14')
txt.tag_config('tagone', foreground='yellow')

tk.mainloop()

如果您运行它,您将看到紫色标记出现在前景中,而不是黄色标记。有没有办法根据时间顺序来定义标记优先级,而不是它现在使用的是什么?

标记优先级是基于创建标记的时间,而不是应用标记的时间

发件人:

如果将多个标记附着到一系列文本,则最近创建的标记中的样式选项将替代早期标记中的选项。在下面的示例中,生成的文本是黄色背景上的蓝色

请注意,将标记附加到范围的顺序并不重要;重要的是标记创建顺序

您可以使用
标记提升
标记降低
更改标记优先级。如果将
text.tag\u lower(“a”)
添加到上述示例中,文本将变为红色


因为您在
tagtwo
之前创建了
tagone
tagtwo
获得优先权。您可以通过给第三个范围指定一个新名称(
tagthree
),在创建
tagone
之前创建
tagtwo
,或者使用
txt.tag\u lower('tagtwo')
/
txt.tag\u raise('tagone')
,如果您说
我知道这是重复的
,那么您就可以得到您所期望的行为,指定您认为是/可以是重复的问题很有用。这使得评估索赔变得更容易
没有有效的答案,而且有点让人困惑。
text.tag_config("n", background="yellow", foreground="red")
text.tag_config("a", foreground="blue")
text.insert(contents, ("n", "a"))