pyqt实现下拉框 和 标签 显示内容不被 UI剪掉,能完整显示的代码如下:
label_3 = QtGui.QLabel(mainwin) txt = "1111111111111111111111111111000009999999999999999999999999999999999999999999999" metrics = QFontMetrics(label_3.font()) w = metrics.width(txt) label_3.setGeometry(QtCore.QRect(20, 20, w, 80)) label_3.setObjectName(_fromUtf8("label_3")) label_3.setText(_translate("MainWindow", txt, None)) l = ['123' , '3451111111111111', '1111111111', '0000000000000', '123'] comboBox_2 = QtGui.QComboBox(mainwin) txt = (max(l, key=len)) metrics = QFontMetrics(comboBox_2.font()) w = metrics.width(txt) comboBox_2.setGeometry(QtCore.QRect(80, 5, 20, 20)) comboBox_2.setMinimumWidth(w) comboBox_2.setObjectName(_fromUtf8("comboBox_2")) comboBox_2.addItems(l) comboBox_2.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents)
不过QT5貌似有bug,见 https://forum.qt.io/topic/25859/how-can-i-increase-the-size-of-the-drop-down-list-of-a-qcombobox/8