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
    
  • 相关阅读:
    实验-继承&super.doc
    Python库
    Github高级搜索
    代码报错记录
    编程问题解决
    百科
    【Android】添加依赖包
    【Android】导航栏(加图片icon)和不同页面的实现(viewpager+tablayout)
    【Android】Android Studio真机调试的问题统整
    【AD】自己画板的备忘
  • 原文地址:https://www.cnblogs.com/ribavnu/p/4971963.html
Copyright © 2011-2022 走看看