
正文
QT pyqt pyside2 QLabel 自动换行设置注意点
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
QT pyqt pyside2 QLabel 自动换行设置注意点
先看效果:

PySide2(QT5) 的 QT Designer (我在 QT4 的 designer 中不可以直接看效果,可能需要设置什么)能直接在编辑器中看效果,Label设置如下:



注意:不要在同HorizonLayout中加弹簧,Label Horizontal 必须是 Expanding 的,很长的英文单词并不会像中文那样会分开换行,所以注意英文单词之间要用空格键隔开。
代码:
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file '.\labelAutoMultiLine.ui'
#
# Created: Fri Nov 02 19:02:05 2018
# by: pyside-uic 0.2.15 running on PySide 1.2.4
#
# WARNING! All changes made in this file will be lost! from PySide import QtCore, QtGui class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(315, 86)
self.horizontalLayout = QtGui.QHBoxLayout(Form)
self.horizontalLayout.setObjectName("horizontalLayout")
self.pushButton = QtGui.QPushButton(Form)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushButton.sizePolicy().hasHeightForWidth())
self.pushButton.setSizePolicy(sizePolicy)
self.pushButton.setMinimumSize(QtCore.QSize(64, 64))
self.pushButton.setMaximumSize(QtCore.QSize(64, 64))
self.pushButton.setObjectName("pushButton")
self.horizontalLayout.addWidget(self.pushButton)
self.label = QtGui.QLabel(Form)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
self.label.setSizePolicy(sizePolicy)
self.label.setWordWrap(True)
self.label.setObjectName("label")
self.horizontalLayout.addWidget(self.label) self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form):
Form.setWindowTitle(QtGui.QApplication.translate("Form", "Form", None, QtGui.QApplication.UnicodeUTF8))
self.pushButton.setText(QtGui.QApplication.translate("Form", "Button", None, QtGui.QApplication.UnicodeUTF8))
self.label.setText(QtGui.QApplication.translate("Form", "TextLabel", None, QtGui.QApplication.UnicodeUTF8))
labelAutoMultiLine_ui_pyside.py
# -*- coding: utf-8 -*-
import sys
from PySide import QtCore, QtGui
import labelAutoMultiLine_ui_pyside as ui class TestWindow(QtGui.QWidget, ui.Ui_Form):
def __init__(self, parent = None):
super(TestWindow, self).__init__(parent)
self.setupUi(self) self.label.setWordWrap(True) #也可以在qt designer中对label的属性设置
self.label.setText(u'测试Label自动换行,SDFSDF SFSDF 啊啊啊啊啊啊') # 如果在designer中设置好很长的text,在代码中不设置,则可能不会自动换行 def main():
app = QtGui.QApplication(sys.argv)
win = TestWindow()
win.show()
sys.exit(app.exec_()) if __name__ == '__main__':
main()







