在文本小部件tkin中标记

2024-10-01 11:25:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我在理解如何让标签在我的特定应用程序上工作有些困难,我有一个名为“dwgoutputbox”的文本小部件,它在读取CSV文件后显示许多字段

在本例中,dwgoutputbox文本小部件显示许多字符串变量descDwg1,descDwg2,descDwg3,它们是第一列中的项目,后面是其他变量的“issue”编号

我试着让第一列中的项目突出显示,这样最终我可以让它们可以单击,因为它们将链接到文件。在

由于第一列中的项目会发生变化,这取决于CSV搜索(但仍采用以下通用格式),我不确定如何使tag_config工作

    self.outputQty.insert(INSERT,descQty)
                    self.outputDesc.insert(INSERT,descPN, END," ", END, descInfo)
                    self.dwgoutputbox.insert(INSERT, descDwg1, END, "   ", END, " Issue:  ",END,descIss1,END, "\n")
                    self.dwgoutputbox.insert(INSERT, descDwg2, END, "   ", END, " Issue:  ",END,descIss2,END, "\n")
                    self.dwgoutputbox.insert(INSERT, descDwg3, END, "   ", END, " Issue:  ",END,descIss3,END, "\n")
                    format_link()


    def format_link(dwgoutputbox,tag,apply_tag):
        self.dwgoutputbox.tag_config(tagName="19",foreground="blue",underline=1)
        dwgoutputbox.tag_bind(tag,"<Button-1>",apply_tag)

好的,成功地让它如预期的那样工作,主要是由于布莱恩·奥克利的帮助和耐心-非常感谢你的感谢。在

^{pr2}$

我有一半的问题是,对于更高级的东西,似乎没有太多/任何好的“基本”解释,这给一个学习python一个月的新手提出了一个很好的挑战。尽管如此:)

上面的结果告诉我 enter image description here


Tags: 文件csv项目文本self部件tagissue
1条回答
网友
1楼 · 发布于 2024-10-01 11:25:12

代码中至少有两个问题。在

首先,您错误地使用了insert语句。这是您的代码:

self.outputDesc.insert(INSERT,descPN, END," ", END, descInfo)

insert命令的第一个参数必须是索引,下一个参数是文本。之后的任何参数都作为标记和文本交替出现。在您的例子中,文本是descPN的值,然后是一个名为“end”的标记(即END常量的值)、一个空格、“end”m的标记,然后是文本descInfo。在

其次,您永远不会配置标记“end”。但是,您确实配置了一个名为19的标记,但是您没有将该标记应用于任何文本。您需要将标记与insert语句一起使用,或者与tag_add语句一起使用。在

要在文本小部件中使用标记突出显示文本,您需要做两件事:必须将标记配置为具有所需的任何属性(颜色、字体等),并且必须将该标记添加到文本范围中。在

您可以使用tag_configure配置标记。例如,要让一个名为“red”的标记为文本提供红色背景,您可以执行以下操作:

^{pr2}$

接下来,需要将该标记应用于文本范围。有两种方法。首先,可以在插入文本时将标记应用于文本,方法是将标记作为参数包含到insert命令中:

text_widget.insert('end", "this text is red", "red")

第二种方法是将标记应用于范围。例如,要使第二行变为红色,可以这样做:

text_widget.tag_add("red", "2.0", "2.0 lineend")

相关问题 更多 >