【Python-GUI图形化界面-PyQt5模块(4)】——QPushButton核心模块-setWordWrap(True):启用自动换行

时间:2024-10-21 07:25:10

启用自动换行。

setWordWrap() 是 PyQt 中 QLabel 控件用于设置文本是否自动换行的常用方法。该方法主要作用是在标签文本过长时,根据控件的宽度自动换行,确保文本能够完整显示在标签区域内,而不会被截断。

通过启用自动换行,可以在界面设计中更好地布局长文本内容,避免超出控件边界的文字无法显示或显示不全的情况。

setWordWrap()方法签名

setWordWrap(on bool)

形参列表:

形参名

类型:

参数解释

On

Bool布尔值参数,指定是否启用文本的自动换行功能。

·  True:启用文本自动换行,根据控件的宽度进行折行。

·  False:禁用文本自动换行(默认行为)。如果文本过长,则显示在同一行中,超出部分不会显示。

基本示例:

示例代码:

以下是一个使用 setWordWrap(True) 让标签中的长文本根据控件宽度自动换行的简单示例:

from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel
import sys

# 初始化应用程序
app = QApplication(sys.argv)

# 创建主窗口
main_window = QMainWindow()
main_window.setWindowTitle('setWordWrap Example')
main_window.resize(400, 300)

# 创建 QLabel 控件,并设置长文本
label = QLabel('This is a very long text that will be automatically wrapped to fit the width of the label. '
               'It demonstrates the use of the setWordWrap method in PyQt.', main_window)
label.setGeometry(50, 50, 300, 100)  # 设置 QLabel 的位置和大小

# 启用自动换行功能
label.setWordWrap(True)

# 显示主窗口
main_window.show()

# 运行应用程序主循环
sys.exit(app.exec_())
解释:
  • label.setWordWrap(True) 启用 QLabel 的文本自动换行功能。
  • 长文本在控件宽度不足时自动折行,确保所有文字能够在指定的 QLabel 宽度内完整显示。

拓展示例:

示例代码:

默认情况下,QLabel 不会自动换行。当文本内容过长时,如果未启用 setWordWrap(True),超出控件宽度的文字将无法显示:

from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel
import sys

# 初始化应用程序
app = QApplication(sys.argv)

# 创建主窗口
main_window = QMainWindow()
main_window.setWindowTitle('No Word Wrap Example')
main_window.resize(400, 300)

# 创建 QLabel 控件,并设置长文本
label = QLabel('This is a very long text that will not wrap automatically unless word wrap is enabled. '
               'Only the part fitting within the label width will be visible.', main_window)
label.setGeometry(50, 50, 300, 50)  # 设置 QLabel 的位置和大小

# 禁用自动换行(默认行为)
label.setWordWrap(False)

# 显示主窗口
main_window.show()

# 运行应用程序主循环
sys.exit(app.exec_())

解释:

·  label.setWordWrap(False) 禁用了自动换行功能(默认设置)。

·  当文本超过 QLabel 的宽度时,超出部分不会被显示,造成文本内容显示不全。