tkinter 有没有办法将文本小部件中的单个单词设置为斜体?

问题描述 投票:0回答:1

我正在尝试使文本小部件在与斜体字符相同的行中显示一些非斜体字符。例如,我希望它在同一行中显示“这是 my 文本小部件”。

据我所知,您只能更改整个小部件的字体格式,而不能更改单个单词。我在网上查了很多,但无法回答这个问题。我想知道这是否可能,或者我是否应该尝试使用文本小部件的不同方法。

python tkinter typography
1个回答
0
投票

不幸的是,tkinter 的文本小部件无法直接访问字体样式。解决方法可能是将文本行拆分为单独的文本小部件条目,并对每个条目应用不同的样式。这可以创造类似于所需效果的东西。

示例:

import tkinter as tk

root = tk.Tk()
root.geometry("400x100")

text_widget = tk.Text(root, wrap="none", height=1)
text_widget.pack()

text_widget.insert(tk.END, "This is ")
text_widget.tag_add("italic", "1.0", "1.4")
text_widget.tag_config("italic", font=("Times", 12, "italic"))

text_widget_italic = tk.Text(root, wrap="none", height=1)
text_widget_italic.pack()

text_widget_italic.insert(tk.END, "my")
text_widget_italic.tag_add("italic", "1.0", "1.2")
text_widget_italic.tag_config("italic", font=("Times", 12, "italic"))

text_widget.insert(tk.END, " text widget")
text_widget.tag_add("normal", "1.5", "1.end")
text_widget.tag_config("normal", font=("Times", 12))

root.mainloop()
© www.soinside.com 2019 - 2024. All rights reserved.