Tkinter表格有多行标签?

Nat*_*eed 3 python tkinter

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

构建表单后,我不需要动态更改标签文本:文本将在构造时知道.但我不知道可能的标签字符串的世界.我希望表单通过将标签包装成多行来纵向扩展来容纳更长的标签文本.这当然应该扩展嵌入标签的行.

Per Create使用自动换行创建可调整大小/多行Tkinter/ttk标签,我认为我应该使用Text小部件进行自动换行并将其禁用为输入字段.但我不知道如何水平约束它(使用自动换行),同时将其扩展到垂直的精确尺寸.

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

  1. 确定父级的总宽度.
  2. 分配Text字段相对于父级的宽度.(我想我会用grid_columnconfigure(weight=),但很乐意接受建议.)
  3. 自动换行文本内容以适合其宽度.
  4. 垂直展开"文本"块以显示所有行.
  5. 将垂直大小向外传播到父级.

这可能有一个直截了当的答案,一旦我更好地理解Tkinter几何管理器的工作方式,特别是Grid,这一点就会变得明显.我已经阅读了http://effbot.org/tkinterbook/grid.htmhttp://effbot.org/tkinterbook/pack.htm,但还没有一个大的"啊哈!" 时刻.我很感激能够解决这类问题的参考资料.

谢谢你的帮助!

Tig*_*kT3 7

您正在寻找Message小部件:

Message小部件是Label的变体,用于显示多行消息.消息窗口小部件可以包装文本,并调整其宽度以维持给定的宽高比.

如果你想要多种字体之类的花哨东西,你需要转移到一个Text小部件.如果你只是想要一个更长的版本,那么Label,Message是一个不错的选择.

  • Effbot.org 目前已关闭。也许此链接可以提供帮助:https://www.studytonight.com/tkinter/python-tkinter-message-widget。 (2认同)