PyQt5中comboBox的項目禁用與恢復

做爲一個新手,這個功能耗費了大半天時間,先將測試出來的代碼分享出來:less

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) # 解除禁用
寫出來爲了本身的記錄,也爲了方便有緣人.測試

相關文章
相關標籤/搜索