如何在QComboBox中居中文本?

6

我已经尝试使用QComboBox的model(),但没有明显的成功。我想知道是否可能将文本居中对齐到QCombobox中。除了文本对齐之外,似乎改变其PointSize并不影响item的字体...

    combo=QtGui.QComboBox()
    comboModel=combo.model()

    for name in ['one','two','three']:
        item = QtGui.QStandardItem(name)
        itemFont = item.font()
        itemFont.setPointSize(8)
        item.setFont(itemFont)
        # item.setAlignment(QtCore.Qt.AlignCenter)
        comboModel.appendRow(item)

请查看有关QStandardItem的文档:http://qt-project.org/doc/qt-4.8/qstandarditem.html#setTextAlignment - sebastian
1个回答

5
您可以使用 setAlignment 方法:
from PyQt4 import QtGui, QtCore

class Window(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        layout = QtGui.QVBoxLayout(self)
        self.combo = QtGui.QComboBox()
        self.combo.setEditable(True)
        self.combo.lineEdit().setAlignment(QtCore.Qt.AlignCenter)
        self.combo.addItems('One Two Three Four Five'.split())
        layout.addWidget(self.combo)


if __name__ == '__main__':

    import sys
    app = QtGui.QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

非常好!我很高兴能够在不使用.model()的情况下解决问题。 - alphanumeric

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接