zoukankan      html  css  js  c++  java
  • QTreeView 限制特定的深度、特定深度下的列 是否可以编辑

    QTreeView 限制特定的深度、特定深度下的列 是否可以编辑

    #
    #   C_TreeView
    #  在QTreeView基础上增加限制特定深度、特定列是否可以编辑
    #
    class C_TreeView(QTreeView):
        def __init__(self, parent=None):
            QTreeView.__init__(self, parent)
            
            # 设置可以编辑的 深度  和  列
            # dict,  depth:int,column:list
            self.c_allow_edit = dict()
            
        
        #
        # 设置可以编辑的 深度  和  列
        # allow_edit :dict,
        # key:深度,  大于0的整数
        # value :每个深度下可以编辑的多个列, 列编号从0开始
        def c_setAllowEdit(self, allow_edit):
            
            self.c_allow_edit = allow_edit
            
        def edit(self, index, trigger, event):
            
            args = [index, trigger, event]        
            path = self.indexToPath(index)
            depth = len(path)
            columnIndex = index.column()
            
            #return_value = QTableView.edit(self, *args)
            #return_value =super(QTreeView, self) .edit( *args)
            
            if event is not None:
                # 2:鼠标的按下,3:鼠标的释放
                # 4:鼠标的双击
                # 如果是双击,判断 深度  和 列  是否可以编辑
                event_type = event.type()
                if event_type ==4:
                    allow_columns = self.c_allow_edit.get(depth)
                    if allow_columns is None:
                        return False
                    if columnIndex not in allow_columns:
                        return False
                        
                
            return_value =super(QTreeView, self) .edit( *args) 
            return return_value
    
  • 相关阅读:
    依赖反转Ioc和unity,autofac,castle框架教程及比较
    webform非表单提交时防xss攻击
    tfs分支操作
    防火墙入站出站规则配置
    前端流程图jsplumb学习笔记
    Js闭包学习笔记
    word中加入endnote
    Rest概念学习
    DRF的版本、认证、权限
    博客园自动生成目录
  • 原文地址:https://www.cnblogs.com/ribavnu/p/4971963.html
Copyright © 2011-2022 走看看