gpt4 book ai didi

python - 带有多行标签的 Tkinter 表单?

转载 作者:太空宇宙 更新时间:2023-11-03 13:14:48 25 4
gpt4 key购买 nike

我正在构建一个通用的、数据驱动的 Tkinter 表单。每行的左侧都有一个标签,右侧有一个输入字段。对于简单的测试数据,它可以为标签文本使用标签——但是当所需的标签文本比标签字段长时,它只会被截断。

一旦构建了表单,我就不需要动态地改变标签文本:文本在构建时就知道了。但我不知道可能的标签字符串的范围。我希望表单通过将标签自动换行为多行并垂直扩展来容纳更长的标签文本。这当然应该扩展嵌入标签的行。

根据 Create resizable/multiline Tkinter/ttk Labels with word wrap ,我想我应该使用文本小部件进行自动换行并将其禁用为输入字段。但我不知道如何在将其垂直扩展到精确大小的同时水平约束它(以进行自动换行)。

换句话说,处理顺序应该是这样的:

  1. 确定父级的整体宽度。
  2. 相对于父项分配文本字段的宽度。 (我想我会使用 grid_columnconfigure(weight=),但很乐意接受建议。)
  3. 将文本内容换行以适合其宽度。
  4. 垂直展开文本 block 以显示所有行。
  5. 将垂直尺寸向外传播到父级。

这可能有一个直截了当的答案,一旦我更好地理解了 Tkinter 几何管理器的一般工作原理,尤其是 Grid 的工作原理,这个答案就会变得显而易见。我读过 http://effbot.org/tkinterbook/grid.htmhttp://effbot.org/tkinterbook/pack.htm还没有大声“啊哈!”片刻。如果能提供解决此类问题的引用资料,我将不胜感激。

感谢您的帮助!

最佳答案

您正在寻找 Message widget :

The Message widget is a variant of the Label, designed to display multiline messages. The message widget can wrap text, and adjust its width to maintain a given aspect ratio.

如果您想要多种字体等花哨的东西,您需要移动到 Text 小部件。不过,如果您只想要更长版本的 LabelMessage 是一个不错的选择。

关于python - 带有多行标签的 Tkinter 表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33568082/

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