当前位置: 首页>>代码示例>>Python>>正文


Python QTreeWidgetItem.removeChild方法代码示例

本文整理汇总了Python中qgis.PyQt.QtWidgets.QTreeWidgetItem.removeChild方法的典型用法代码示例。如果您正苦于以下问题:Python QTreeWidgetItem.removeChild方法的具体用法?Python QTreeWidgetItem.removeChild怎么用?Python QTreeWidgetItem.removeChild使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在qgis.PyQt.QtWidgets.QTreeWidgetItem的用法示例。


在下文中一共展示了QTreeWidgetItem.removeChild方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: DSManagerModel

# 需要导入模块: from qgis.PyQt.QtWidgets import QTreeWidgetItem [as 别名]
# 或者: from qgis.PyQt.QtWidgets.QTreeWidgetItem import removeChild [as 别名]
class DSManagerModel(QAbstractItemModel):
    __metaclass__ = QSingleton

    COLUMN_GROUP_DS = 0
    COLUMN_VISIBILITY = 1
    COLUMN_SOURCE = 2

    # instance = None

    # @classmethod
    # def getInstance(cls):
    #     if cls.instance

    def __init__(self, parent=None):
        super(DSManagerModel, self).__init__(parent)

        self.columnNames = []
        self.columnNames.insert(self.COLUMN_GROUP_DS, self.tr("Group/DS"))
        self.columnNames.insert(self.COLUMN_VISIBILITY, self.tr("Visible"))
        self.columnNames.insert(self.COLUMN_SOURCE, self.tr("Source"))

        self.rootItem = QTreeWidgetItem(self.columnNames)
        self.__setupModelData()

    def resetModel(self):
        self.beginResetModel()
        self.__clear()
        self.__setupModelData()
        self.endResetModel()
        self.modelReset.emit()

    def __clear(self):
        for groupIndex in range(self.rootItem.childCount() - 1, -1, -1):
            groupItem = self.rootItem.child(groupIndex)
            for dsIndex in range(groupItem.childCount() - 1, -1, -1):
                dsItem = groupItem.child(dsIndex)
                groupItem.removeChild(dsItem)
            self.rootItem.removeChild(groupItem)

    def __setupModelData(self):
        dsList = DataSourcesList().data_sources.values()
        groupInfoList = GroupsList().groups
        groupsItems = []
        groups = []
        for ds in dsList:
            if ds.group in groups:
                group_item = groupsItems[groups.index(ds.group)]
            else:
                group_item = QTreeWidgetItem()
                group_item.setData(self.COLUMN_GROUP_DS, Qt.DisplayRole, ds.group)
                group_item.setData(self.COLUMN_VISIBILITY, Qt.DisplayRole, "")
                group_item.setData(self.COLUMN_SOURCE, Qt.DisplayRole, ds.category)
                group_item.setCheckState(self.COLUMN_VISIBILITY, Qt.Unchecked)

                groupInfo = groupInfoList.get(ds.group)
                if groupInfo is not None:
                    group_item.setIcon(self.COLUMN_GROUP_DS, QIcon(groupInfo.icon))
                else:
                    group_item.setData(self.COLUMN_GROUP_DS, Qt.DisplayRole, ds.group + " (%s!)" % self.tr("group not found"))
                group_item.setData(self.COLUMN_GROUP_DS, Qt.UserRole, groupInfo)

                groups.append(ds.group)
                groupsItems.append(group_item)
                self.rootItem.addChild(group_item)

            ds_item = QTreeWidgetItem()
            ds_item.setData(self.COLUMN_GROUP_DS, Qt.DisplayRole, ds.alias)
            ds_item.setIcon(self.COLUMN_GROUP_DS, QIcon(ds.icon_path))
            ds_item.setData(self.COLUMN_GROUP_DS, Qt.UserRole, ds)
            ds_item.setData(self.COLUMN_VISIBILITY, Qt.DisplayRole, "")
            ds_item.setData(self.COLUMN_SOURCE, Qt.DisplayRole, ds.category)

            ds_check_state = Qt.Checked
            if ds.id in PluginSettings.get_hide_ds_id_list():
                ds_check_state = Qt.Unchecked
            ds_item.setCheckState(self.COLUMN_VISIBILITY, ds_check_state)

            if group_item.childCount() != 0 and group_item.checkState(1) != ds_check_state:
                group_item.setCheckState(self.COLUMN_VISIBILITY, Qt.PartiallyChecked)
            else:
                group_item.setCheckState(self.COLUMN_VISIBILITY, ds_check_state)

            group_item.addChild(
                ds_item
            )

    def setData(self, index, value, role):
        if not index.isValid():
            return False
        else:
            item = index.internalPointer()

        if role == Qt.CheckStateRole:
            item.setData(self.COLUMN_VISIBILITY, role, value)

            self.dataChanged.emit(
                index,
                index
            )

#.........这里部分代码省略.........
开发者ID:nextgis,项目名称:quickmapservices,代码行数:103,代码来源:data_sources_model.py


注:本文中的qgis.PyQt.QtWidgets.QTreeWidgetItem.removeChild方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。