【问题标题】:How to apply different text formats to different text in python tkinter Text widget如何在 python tkinter Text 小部件中将不同的文本格式应用于不同的文本
【发布时间】:2020-09-17 20:25:31
【问题描述】:

我正在编写一个 python 代码来在 pythonmy python text editor 中创建一个富文本编辑器。它有一个粗体按钮和所有格式化按钮,如斜体、字体等。

这些按钮将格式化所选文本。

但是所有这些按钮的问题在于,首先当我将所选文本加粗时,它工作正常,但第二次它将相同的格式应用于先前选择的文本

这是我的粗体和斜体功能代码:

def boldtxt():
        bldbtn['activebackground']="#ffad33"
        contboxfont['weight']="bold"
        contbox.tag_add("bold",SEL_FIRST,SEL_LAST)
        contbox.tag_config("bold",font=contboxfont)
def italictxt():


itlbtn['activebackground']="#ffad33"
                contboxfont['slant']="italic"
                contbox.tag_add("italic",SEL_FIRST,SEL_LAST)
                contbox.tag_config("italic",font=contboxfont)
contbox=Text()
contbox.pack()
bldbtn=Button(comand=boldtxt)
bldbtn.pack()
itlbtn=Button(command=italictxt)
itlbtn.pack()

我希望每个单词(或选定的项目)都应根据用户进行格式化。 例如。 如果按下粗体按钮,则所选文本应为粗体 如果按下斜体按钮,则所选文本将为斜体。 在此先感谢:)

【问题讨论】:

  • 您的问题不清楚。您是在问如何结合粗体和斜体字体?
  • 不,我只想要一个选定的文本粗体和其他像粗斜体或粗体下划线
  • 我不明白是什么阻止了你这样做。制作一个名为“bold”的标签,一个名为“italic”的标签,一个名为“bold-italic”的标签,等等,然后应用适当的标签。
  • 我也在想为什么不是这样,当我第二次选择并应用样式时,先前选择的文本的格式与第二次相同

标签: python tkinter text widget editor


【解决方案1】:

如果您希望每个单词都具有唯一格式,则它们每个都需要有一个唯一的标签。在您的代码中,所有内容都使用“粗体”标签,因此如果您更改“粗体”标签,所有单词都会更改。如果你不想这样,每个单词都需要自己独特的标签。

【讨论】:

  • 我在不同的函数中给出了不同的标签,即使之前选择的文本格式相同
  • @SrinjayVatsa:我不明白你的意思。如果文本范围具有唯一标签,则根据定义,它们将具有唯一属性。
  • 查看我的编辑,我提供了更多代码以使其清晰[忽略额外的缩进]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-06
  • 1970-01-01
  • 2016-07-31
  • 2019-07-04
  • 2020-06-25
  • 2019-11-13
  • 2011-04-16
相关资源
最近更新 更多