先看效果:app
PySide2(QT5) 的 QT Designer (我在 QT4 的 designer 中不能夠直接看效果,可能須要設置什麼)能直接在編輯器中看效果,Label設置以下:編輯器
注意:不要在同HorizonLayout中加彈簧,Label Horizontal 必須是 Expanding 的,很長的英文單詞並不會像中文那樣會分開換行,因此注意英文單詞之間要用空格鍵隔開。ide
代碼:測試
1 # -*- coding: utf-8 -*- 2 3 # Form implementation generated from reading ui file '.\labelAutoMultiLine.ui' 4 # 5 # Created: Fri Nov 02 19:02:05 2018 6 # by: pyside-uic 0.2.15 running on PySide 1.2.4 7 # 8 # WARNING! All changes made in this file will be lost! 9 10 from PySide import QtCore, QtGui 11 12 class Ui_Form(object): 13 def setupUi(self, Form): 14 Form.setObjectName("Form") 15 Form.resize(315, 86) 16 self.horizontalLayout = QtGui.QHBoxLayout(Form) 17 self.horizontalLayout.setObjectName("horizontalLayout") 18 self.pushButton = QtGui.QPushButton(Form) 19 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) 20 sizePolicy.setHorizontalStretch(0) 21 sizePolicy.setVerticalStretch(0) 22 sizePolicy.setHeightForWidth(self.pushButton.sizePolicy().hasHeightForWidth()) 23 self.pushButton.setSizePolicy(sizePolicy) 24 self.pushButton.setMinimumSize(QtCore.QSize(64, 64)) 25 self.pushButton.setMaximumSize(QtCore.QSize(64, 64)) 26 self.pushButton.setObjectName("pushButton") 27 self.horizontalLayout.addWidget(self.pushButton) 28 self.label = QtGui.QLabel(Form) 29 sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred) 30 sizePolicy.setHorizontalStretch(0) 31 sizePolicy.setVerticalStretch(0) 32 sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth()) 33 self.label.setSizePolicy(sizePolicy) 34 self.label.setWordWrap(True) 35 self.label.setObjectName("label") 36 self.horizontalLayout.addWidget(self.label) 37 38 self.retranslateUi(Form) 39 QtCore.QMetaObject.connectSlotsByName(Form) 40 41 def retranslateUi(self, Form): 42 Form.setWindowTitle(QtGui.QApplication.translate("Form", "Form", None, QtGui.QApplication.UnicodeUTF8)) 43 self.pushButton.setText(QtGui.QApplication.translate("Form", "Button", None, QtGui.QApplication.UnicodeUTF8)) 44 self.label.setText(QtGui.QApplication.translate("Form", "TextLabel", None, QtGui.QApplication.UnicodeUTF8))
1 # -*- coding: utf-8 -*- 2 import sys 3 from PySide import QtCore, QtGui 4 import labelAutoMultiLine_ui_pyside as ui 5 6 class TestWindow(QtGui.QWidget, ui.Ui_Form): 7 def __init__(self, parent = None): 8 super(TestWindow, self).__init__(parent) 9 self.setupUi(self) 10 11 self.label.setWordWrap(True) #也能夠在qt designer中對label的屬性設置 12 self.label.setText(u'測試Label自動換行,SDFSDF SFSDF 啊啊啊啊啊啊') # 若是在designer中設置好很長的text,在代碼中不設置,則可能不會自動換行 13 14 def main(): 15 app = QtGui.QApplication(sys.argv) 16 win = TestWindow() 17 win.show() 18 sys.exit(app.exec_()) 19 20 if __name__ == '__main__': 21 main()