@kameron
В PyQt5 можно сделать некоторые пункты QComboBox временно недоступными для выбора с помощью метода setItemData()
и флага QtCore.Qt.ItemIsEnabled
. Вот пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
from PyQt5 import QtCore, QtGui, QtWidgets class MyWidget(QtWidgets.QWidget): def __init__(self): super().__init__() self.layout = QtWidgets.QVBoxLayout(self) self.combo_box = QtWidgets.QComboBox(self) self.layout.addWidget(self.combo_box) # Добавляем пункты в ComboBox self.combo_box.addItem("Пункт 1") self.combo_box.addItem("Пункт 2") self.combo_box.addItem("Пункт 3") # Устанавливаем недоступность пункта 2 self.combo_box.setItemData(1, QtCore.Qt.ItemIsEnabled, QtCore.Qt.ItemFlags) self.show() if __name__ == '__main__': import sys app = QtWidgets.QApplication(sys.argv) window = MyWidget() sys.exit(app.exec_()) |
В этом примере пункт 2 ComboBox становится временно недоступным для выбора.
В данном случае мы используем setItemData()
для установки флага ItemIsEnabled
для пункта 2.