PyQt启用/禁用QComboBox中的元素

sam*_*amb 6 python pyqt pyqt4 qcombobox python-3.x

我有一个QComboBox列出所有Windows的驱动器号,让用户在其中进行选择.在执行期间,我们需要启用或禁用某些字母(不删除它们).

这是基本代码:

all_letters = ["{}:".format(chr(i)) for i in range(90, 64, -1)]  # Z: -> A:
all_letters.insert(0, "")
cb_letter = QtGui.QComboBox()
for l in all_letters:
    cb_letter.addItem(l)
cb_letter.setCurrentIndex(0)
Run Code Online (Sandbox Code Playgroud)

我可以找到一种解决方案(听起来真的很复杂),只是在这里禁用一个条目,但无法启用它.

什么是启用和禁用QComboBox的任何条目的最佳方法?

ekh*_*oro 10

默认情况下,QComboBox使用a QStandardItemModel,因此QStandardItem您可以使用所有便捷方法:

cb_letter.model().item(2).setEnabled(False)
Run Code Online (Sandbox Code Playgroud)