Как установить текст в QComboBox для выравнивания по центру без возможности его редактирования в PyQt

Я обнаружил, что

self.combo.setEditable(True) self.combo.lineEdit().setAlignment(QtCore.Qt.AlignCenter) 

выровнят текст в выпадающем списке в центре. Но как только я это сделаю, стиль, который я применил к combobox, не работает, и текст, который отображается внутри него, будет стандартным текстом по умолчанию. Также я не хочу сделать его редактируемым, и мне не нравится эффект GUI, который возникает, когда мы устанавливаем его для редактирования.

Есть ли простой способ центрировать выравнивание текста и при этом сохранять те же эффекты графического интерфейса, что и раньше (например, стиль и поведение при нажатии на него)?

    Вы можете переопределить процедуру рисования combobox самостоятельно таким образом (фрагмент из проекта, над которым я работаю):

     class CustomComboBox(QtGui.QComboBox): ... def paintEvent(self, evt): painter = QtGui.QStylePainter(self) painter.setPen(self.palette().color(QtGui.QPalette.Text)) option = QtGui.QStyleOptionComboBox() self.initStyleOption(option) painter.drawComplexControl(QtGui.QStyle.CC_ComboBox, option) textRect = QtGui.qApp.style().subControlRect(QtGui.QStyle.CC_ComboBox, option, QtGui.QStyle.SC_ComboBoxEditField, self) painter.drawItemText( textRect.adjusted(*((2, 2, -1, 0) if self.isShown else (1, 0, -1, 0))), QtGui.qApp.style().visualAlignment(self.layoutDirection(), QtCore.Qt.AlignLeft), self.palette(), self.isEnabled(), self.fontMetrics().elidedText(self.currentText(), QtCore.Qt.ElideRight, textRect.width()) ) ... 

    painter.drawItemText вызове painter.drawItemText вызывается текст.