作为一个新手,这个功能耗费了大半天时间,先将测试出来的代码分享出来:
cBox.model().setData(index, v, Qt.UserRole - 1)
# 禁用comboBox的指定项目
当我们需要同时禁用comboBox内的多个项目时,可用写成以下函数:
# -->>>批量禁用comboBox项目>>>>>>>>-
def disable_item_comboBox(self, cBox, List, v=0):
"""
将下拉按钮中的某些项目批量禁用
:param cBox: comboBox对象
:param List: 需要禁用的项目,列表数据,如[1,2,5,6]
:param v: 0为禁用,1|32为解除
"""
for i in range(len(List)):
index = cBox.model().index(List[i], 0) # 选择需要设定的项目
# print(List[i])
cBox.model().setData(index, v, Qt.UserRole - 1) # 禁用comboBox的指定项目
使用的时候,禁用多个项目只需要简单的调用即可:self.disable_item_comboBox(self.cBox_chainOpenWindow_wireless, [0, 1, 2, 3, 4], 0) # 禁用无线功能的部分选项
解除禁用也只需要如下调用:self.disable_item_comboBox(self.cBox_chainOpenWindow_wireless, [0, 1, 2, 3, 4], 1 | 32) # 解除禁用
写出来为了自己的记录,也为了方便有缘人.