python tkinter文本框太长 tkinter多行文本框_自动换行


文章目录

  • 一、组件简介
  • 二、运用实例
  • 1. Label 与 Message
  • 2. Message的用武之地
  • 三、参数方法
  • 1. 参数汇总



一、组件简介

Message组件,翻译过来就是消息,通常用于显示多行文本消息。

似乎Message的作用跟Label组件差不多,也确实是这样,Message应该也算上Label的小老弟,属于Label组件的变体。

大多数情况下Label这位老大哥出马,也就没有Message这个小弟什么事了。

python tkinter文本框太长 tkinter多行文本框_python tkinter文本框太长_02

当然如果小M完全废材也没有存在的必要了,Message 组件能够根据设定的 宽度(width)或者 宽高比(aspect)实现自动换行并呈现两端对齐的样式

python tkinter文本框太长 tkinter多行文本框_python tkinter文本框太长_03

二、运用实例

——

1. Label 与 Message

首先我们通过一个简单的例子来直观感受一下,同样一段文本使用Label和Message有啥不同。

import tkinter as tk 

# 【01】Label VS Message
root = tk.Tk()

word='摇摇晃晃进入青春岁月,如此般奢侈的年华,如此般摇曳的时光,\
如此般年轻的我们,有着太多美好的时光,有着太多的无奈。'

l1 = tk.Label(root, text=word)
l1.pack()

m1 = tk.Message(root, text=word)
m1.pack()

root.mainloop()

我们来运行程序看看

python tkinter文本框太长 tkinter多行文本框_python_04


对比还是很明显的,Label组件的文本一行直接显示,而Message组件的文本则自动换行。

在默认情况下,Message组件会按照宽高比150%来进行换行,当然这个值也可以通过aspect参数进行自定义。

上下两者相较起来,下面会自动换行的Message组件会带来更好的阅读体验。

Label组件挤得老长一行,有点费眼。

python tkinter文本框太长 tkinter多行文本框_python_05

——

2. Message的用武之地

既然清楚地知道了同样能够显示文本,Label与Message之间的不同之处。

那么我们就得思考一下,在什么样的情况下适合用Message组件?

首先,我们明确知道利用Message显示文本,它能够自动换行且两端对齐。

那么答案也就呼之欲出,当我们需要在一定宽度下显示大段文本的时候,就比较适合用Message。

我们同样用上面例子中用到的文本来举例,假如我们为了阅读合适,限制窗口的宽度为200像素,高度不限制。

import tkinter as tk

root = tk.Tk()

# 固定窗口宽度为200,为了将所有文本显示完全高度设置为300
root.geometry('200x300')

word_1='摇摇晃晃进入青春岁月,如此般奢侈的年华,如此般摇曳的时光,\
如此般年轻的我们,有着太多美好的时光,有着太多的无奈。'

word_2='''摇摇晃晃进入青春岁月,
如此般奢侈的年华,
如此般摇曳的时光,
如此般年轻的我们,
有着太多美好的时光,
有着太多的无奈。'''

l1 = tk.Label(root, text=word_1)
l1.pack(padx=10, pady=10)

l2 = tk.Label(root, text=word_2, justify='left')
l2.pack(padx=10, pady=10)

m1 = tk.Message(root, text=word_1)
m1.pack(padx=10, pady=10)

root.mainloop()

我们运行程序来对比看一看

python tkinter文本框太长 tkinter多行文本框_python tkinter文本框太长_06


我们会明显的发现,在限定宽度的情况下,如果我们需要显示大段的文字,采用Message组件会更好,因为它能够自动换行并两端对齐。

如果使用Label组件,则需要我们使用三重引号的长文本,并且还要手动调节进行换行,显得非常麻烦。

上面的例子中文本类似诗歌,采用左对齐的参差排列看上去还好。

但是如果是一大段的记叙描述性文本呢?

类似于这种的,难道去手动换行???

视频提供了功能强大的方法帮助您证明您的观点。当您单击联机视频时,可以在想要添加的视频的嵌入代码中进行粘贴。您也可以键入一个关键字以联机搜索最适合您的文档的视频。
为使您的文档具有专业外观,Word 提供了页眉、页脚、封面和文本框设计,这些设计可互为补充。例如,您可以添加匹配的封面、页眉和提要栏。单击“插入”,然后从不同库中选择所需元素。
主题和样式也有助于文档保持协调。当您单击设计并选择新的主题时,图片、图表或 SmartArt 图形将会更改以匹配新的主题。当应用样式时,您的标题会进行更改以匹配新的主题。
使用在需要位置出现的新按钮在 Word 中保存时间。若要更改图片适应文档的方式,请单击该图片,图片旁边将会显示布局选项按钮。当处理表格时,单击要添加行或列的位置,然后单击加号。
在新的阅读视图中阅读更加容易。可以折叠文档某些部分并关注所需文本。如果在达到结尾处之前需要停止读取,Word 会记住您的停止位置 - 即使在另一个设备上。

虽然例子有点极端,但是道理就是那样的道理!

python tkinter文本框太长 tkinter多行文本框_python_07

所以了解Message的特性以及适用范围,对我们还是大大的有用的!

当然,Message组件也是有些它的不足之处,与Label一样只能设置显示一种字体,如果你需要显示多种字体的话,那就只能用Text组件了。

python tkinter文本框太长 tkinter多行文本框_python tkinter文本框太长_03

三、参数方法

——

1. 参数汇总

同样最后总结一下Message组件常用的而一些参数以及用法。

python tkinter文本框太长 tkinter多行文本框_python tkinter文本框太长_09

python tkinter文本框太长 tkinter多行文本框_python tkinter文本框太长_03

python tkinter文本框太长 tkinter多行文本框_自动换行_11