【问题标题】:tkinter insert text with a given margintkinter 插入具有给定边距的文本
【发布时间】:2012-12-10 10:18:21
【问题描述】:

我希望我在 Text 小部件中插入的文本行每次都有不同的左边距(取决于它们在标题层次结构中的级别,字处理器样式):

# The Solar system
The Solar System[a] consists of the Sun and its planetary system of ...
  ## Inner Planets
  The four inner or terrestrial planets...
    ### Mercury
    Mercury (0.4 AU from the Sun) is the closest planet to the Sun and...

我知道我可以在标签定义http://infohost.nmt.edu/tcc/help/pubs/tkinter/text.html 中设置 lmargin1/lmargin2,但我不想每次必须增加/减少左边距时都创建一个新标签。

没有办法将它作为 text.insert() 的选项吗?

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    您最好的选择是使用标签。标签既便宜又容易,专门用于解决此类问题。您可以将标签存储在 dict 中并通过缩进级别引用它们,然后您只需在第一次在特定缩进级别添加内容时创建和配置标签。

    当然,您也可以使用制表符来缩进一行文本。制表符和使用标签之间的区别在于,当一行文本换行时,使用标签可以获得正确的行为,而制表符实际上只是行首的制表符。如果亚麻布缠绕,它将缠绕到左边距而不是行首的位置。

    【讨论】:

    • 哦,好吧,我担心 - 但我敢肯定,现在你确认了。一如既往地感谢布莱恩
    • @alessandro:不要害怕。标签是工作的正确工具。它们非常强大和灵活,并且非常易于使用。只需创建一个insert_at_level 方法,并在其中隐藏详细信息。它实际上只是六行代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-10
    • 2020-11-23
    • 1970-01-01
    相关资源
    最近更新 更多