PyQt4 复选框在 Mac OS 上未显示(但可点击),在 Windows 上工作正常

PyQt4 checkboxes are not showing (but clickable) on Mac OS, on Windows it works fine

我正在为我的学士论文使用 PyQt4 创建一个 GUI。我有一个 QComboBox,其中每个项目都是一个复选框。这是我的代码:

构造函数中的某处:

self.multi = QtGui.QComboBox(self)
self.multi.setEnabled(True)
self.multi.view().pressed.connect(self.handleItemPressed)

在这里,我用我的复选框填充 QComboBox:

def fillMultiCombo(self):
    # len(self.featureNames) rows, 1 column
    model = QtGui.QStandardItemModel(len(self.featureNames), 1)

    firstItem = QtGui.QStandardItem("feature(s)")
    firstItem.setBackground(QtGui.QBrush(QtGui.QColor(200, 200, 200)))
    firstItem.setSelectable(False)
    model.setItem(0, 0, firstItem)

    for i,query in enumerate(self.featureNames):
        item = QtGui.QStandardItem(query)
        item.setFlags(QtCore.Qt.ItemIsEnabled)
        item.setData(QtCore.Qt.Unchecked, QtCore.Qt.CheckStateRole)
        model.setItem(i+1, 0, item)

    self.multi.setModel(model)

提前声明:我认为这不是代码问题,但我提供了一些代码以使其更清楚。 现在的问题是:在 Windows 7(在 2 台不同的机器上)一切正常。但是在我导师的机器上(Macbook Pro,我不知道哪个 OS 对不起),复选框没有显示(但没有打印错误或警告),但是当你点击它时,复选框被选中。所以就像复选框在那里并且起作用,但它是不可见的。

这是错误、机器相关问题还是其他问题。因为所有其他事情在她的机器上运行起来都非常顺利。

找了好久终于找到问题了。这是重要的代码片段:

    app = QtGui.QApplication(sys.argv)

#   Available styles (depending on the OS) for my ThinkPad:
#   Windows
#   WindowsXP
#   WindowsVista
#   Motif
#   CDE
#   Plastique
#   Cleanlooks
    # makes the split bar visible
    app.setStyle(QtGui.QStyleFactory.create('Plastique'))

所以在我为我的应用程序设置样式之前,Qt 根据平台选择了最合适的样式。 OS。所以 Qt 为我的机器选择的默认样式有效,并且通常会显示复选框。 Qt 从我的导师那里为机器上的应用程序选择的默认样式是不一样的。事实上,如果我从 'Plastique' 更改为 'Cleanlooks',我的复选框也会消失。