PyQt5中comboBox的项目禁用与恢复

作为一个新手,这个功能耗费了大半天时间,先将测试出来的代码分享出来:

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) # 解除禁用
写出来为了自己的记录,也为了方便有缘人.

你可能感兴趣的:(python,qt,combobox)