【问题标题】:Save Tkinter Text widget content into a .txt file with styling features将 Tkinter Text 小部件内容保存到具有样式功能的 .txt 文件中
【发布时间】:2018-05-11 12:29:00
【问题描述】:

我写了一个这样的函数:

def alignRight(canvas,project):
    curPos = text.index(INSERT)
    startPos = text.index("%s.0" % (curPos[0]))
    endPos = text.index("%s.end" % (curPos[0]))
    text.tag_configure("right", justify='right')
    text.tag_add("right", startPos, endPos)
    project.file = text.get(1.0,'end-1c')

这工作正常。但是当我尝试将 project.file 保存到 .txt 文件中时。它失去了我给它的对齐方式。 (文本是一个文本小部件)

有没有办法解决这个问题?谢谢!

另外,如果是关于 .txt 文件,它们不能固有样式,是否可以将文本小部件中的内容保存到 .docx 文件中?或者这真的很难做到吗?

【问题讨论】:

  • 文本文件不包含格式信息。保存到 .docx 文件会相当困难。
  • 正如@Bryan Oakley 指出的那样,这是一项相当艰巨的任务,还涉及外部依赖和繁琐的解决方案。如果您试图实现一些不那么复杂的事情并且如果您对古老的技术感到满意,您可以 dump text 小部件的结构化内容并自己生成一个 rtf 格式的字符串。难度与需求有关(link1link2)。
  • 好的。谢谢大家!

标签: python tkinter


【解决方案1】:

text.get 获取小部件中的字符序列(实际上是 unicode 代码点)。标签和文本小部件属性分开存储,get 会忽略它们。有一些方法可以获取当前标签及其开始和结束位置。所以可以写出一个文本,然后是标签规范。

我不知道将标签转换为 docx 样式和位置或任何其他格式是多么可能或容易。

【讨论】:

  • @Hongrun Zhou,我认为你应该接受这个答案。有些事情可以促成这个答案(例如,一个明显的通知 .txt 是一个 plain text 和一个关于 dump 方法的通知,它产生一个包含标签/文本信息的元组序列(一个列表)并且可以潜在地转换为具有代码语法或标记语言(rtf,html,xml)的格式,而没有任何依赖关系。但因为它已经是一个答案,所以..
  • @CommonSense 是的,谢谢你的提醒......我完全忘记接受答案了哈哈。也感谢您提供的信息,我正在调查它! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-07
  • 1970-01-01
  • 2011-04-13
  • 2023-03-12
  • 2015-01-28
相关资源
最近更新 更多