gpt4 book ai didi

tkinter 文本小部件作为 html

转载 作者:行者123 更新时间:2023-12-03 08:58:44 25 4
gpt4 key购买 nike

我构建了 tkinter 应用程序来发送电子邮件。电子邮件正文应从文本小部件获取具有格式/样式的文本。有什么方法可以做到同样的事情吗?

get 方法仅给出文本,但不给出样式/格式。

最佳答案

文本小部件有一个名为 dump 的方法,它可以序列化文本小部件中的所有内容。它返回一个元组列表。每个元组的形式为(键、值、索引)。 key 将为以下之一:textmarktagontagoff图像窗口。该值将取决于 key 。例如,对于 tagontagoff,该值将是标签的名称。对于 text 来说就是文本。

考虑一个文本小部件,其中标签“b”表示粗体,“h1”表示标题。它可能看起来像这样:

enter image description here

当您调用 dump 方法(例如:self.text.dump("1.0", "end"))时,您将得到如下内容:

(
('mark', 'current', '1.0'),
('tagon', 'h1', '1.0'),
('text', 'Hello, world!', '1.0'),
('tagoff', 'h1', '1.13'),
('text', '\n', '1.13'),
('text', '\n', '2.0'),
('text', 'this is a test with some ', '3.0'),
('tagon', 'b', '3.25'),
('text', 'bold text', '3.25'),
('tagoff', 'b', '3.34'),
('text', '.', '3.34'),
('mark', 'insert', '3.35'),
('text', '\n', '3.35'),
)

转换程序只需要循环该数据并处理每个键。如果您使用与 html 标记相对应的标记名称(例如:"b""h1" 等),则转换会变得相当简单。它可能看起来像这样:

def convert(self):
html = ""
for (key, value, index) in self.text.dump("1.0", "end"):
self.converted.insert("end", str((key, value, index)) + "\n")
if key == "tagon":
html += "<{}>".format(value)
elif key == "tagoff":
html += "</{}>".format(value)
elif key == "text":
html += value

上面的例子窗口会产生类似这样的结果:

<h1>Hello, world!</h1>
this is a test with some <b>bold text</b>.

您必须添加一些额外的代码来处理段落,因为 dump 方法只返回换行符而不是每个段落的标记,但除此之外,它是一个相当简单的算法。

关于tkinter 文本小部件作为 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52914354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com