Exemplo n.º 1
0
    def _appendChildrenRowsToItem(self, item: QStandardItem,
                                  listOfDicts: List[dict],
                                  emitSignals: bool) -> bool:
        """Создает элементы из списка сырых словарей `listOfDicts` и добавляет их в качестве подэлементов в элемент
        `item`.

        Возвращает True - если создание и вставка завершились успешно, иначе - возвращает False.
        """
        assert item
        columns = item.columnCount()
        if columns < 1:
            columns = 1

        rows = []
        for rawDict in listOfDicts:
            assert isinstance(rawDict, dict)
            childItem = self._createItemsTree(rawDict, columns)
            if childItem:
                rows.append(childItem)
        if rows:
            if emitSignals:
                parent = self._mapFromLocal(
                    self.__localDataModel.indexFromItem(item))
                first = item.rowCount()
                last = first + len(rows) - 1
                self.beginInsertRows(parent, first, last)
            item.appendRows(self._sortChildrenItems(rows))
            if emitSignals:
                self.endInsertRows()
        return True
    def __init__(self, data):
        """
        # -- Type -- Color
        |-- item_type(Fruit)
        |   |-- name(Apple) -- color(Red)
        |   |-- name(Banana) -- color(Yellow)
        |-- item_type(
        :param data:
        """
        QStandardItemModel.__init__(self, 0, 2)
        self.setHeaderData(0, Qt.Horizontal, "Type")
        self.setHeaderData(1, Qt.Horizontal, "Color")

        for i, v in enumerate(data):
            item_type = data[i]['type']

            row_items = list()
            column_items = list()

            for j, x in enumerate(data[i]['objects']):
                name, color = data[i]['objects'][j]
                item = QStandardItem(item_type)
                child = QStandardItem(name)
                row_items.append(child)
                column = QStandardItem(color)
                column_items.append(column)

            item.appendRows(row_items)
            item.appendColumn(column_items)
            self.setItem(i, 0, item)
 def recursive_data_set(self, data):
     items = list()
     for d in data:
         item = QStandardItem(d["name"])
         item.setData(d["icon"], Qt.DecorationRole)
         if d['objects']:
             item.appendRows(self.recursive_data_set(d['objects']))
         items.append(item)
     return items
def standarditem_from_columngroup(colgroup):
    item = QStandardItem(colgroup.name)
    item.setToolTip("Split by column label: '{!s}'".format(
        escape(colgroup.name)))
    item.setFlags(item.flags() & ~Qt.ItemIsEditable)
    item.setData(colgroup, Qt.UserRole)
    children = [standarditem_from(val) for val in colgroup.values]
    item.appendRows(children)
    return item
def standarditem_from_rowgroup(rowgroup):
    item = QStandardItem(rowgroup.name)
    icon, _ = gui.attributeItem(rowgroup.var)
    item.setIcon(icon)
    item.setToolTip(variable_tooltip(rowgroup.var))
    item.setData(rowgroup, Qt.UserRole)
    item.setFlags(item.flags() & ~Qt.ItemIsEditable)
    children = [standarditem_from(val) for val in rowgroup.values]
    item.appendRows(children)
    return item
Exemplo n.º 6
0
 def convert(self, obj):
     if isinstance(obj, list):
         ret = []
         for n, sub in enumerate(obj):
             item = QStandardItem(str(n))
             item.appendRows(self.convert(sub))
             self.pack(item)
             ret.append(item)
         return ret
     elif isinstance(obj, dict):
         ret = []
         for k in sorted(obj):
             item = QStandardItem(k)
             item.appendRows(self.convert(obj[k]))
             self.pack(item)
             ret.append(item)
         return ret
     return [QStandardItem(repr(obj))]
Exemplo n.º 7
0
    def __init__(self, data):
        """
        # -- Type -- Color
        |-- item_type(Fruit)
        |   |-- name(Apple) -- color(Red)
        |   |-- name(Banana) -- color(Yellow)
        |-- item_type(
        :param data:
        """
        QStandardItemModel.__init__(self, 0, 2)

        # 하나의 아이템만 받도록 되어 있음
        self.setHeaderData(0, Qt.Horizontal, "Type")
        self.setHeaderData(1, Qt.Horizontal, "Color")

        row_items = list()
        column_items = list()
        item_type = data[0]['type']
        name, color = data[0]['objects'][0]

        item = QStandardItem(item_type)

        child = QStandardItem(name)
        row_items.append(child)
        column = QStandardItem(color)
        column_items.append(column)

        name, color = data[0]['objects'][1]
        child = QStandardItem(name)
        row_items.append(child)
        column = QStandardItem(color)
        column_items.append(column)

        item.appendRows(row_items)
        item.appendColumn(column_items)
        self.setItem(0, 0, item)
Exemplo n.º 8
0
    widget = QWidget()
    widget.resize(200, 600)
    treeview = TreeView()
    layout = QVBoxLayout()
    layout.addWidget(treeview)
    widget.setLayout(layout)
    model = QStandardItemModel()
    model.setHorizontalHeaderLabels(['Форма'])

    UnitDb = dbQl("""select u.Name from Unit as u""")
    print(UnitDb)
    for UnitName in UnitDb:
        item_u = QStandardItem(UnitName)
        sqlUnitS = ('select us.Name from Unit as u, UnitSubject as us'
                    ' WHERE 1=1'
                    ' and u.id=us.idPodr'
                    ' and u.name ="'
                    + UnitName +'"')
        UnitSDb = dbQl(sqlUnitS)
        
        print(sqlUnitS)
        for UnitSName in UnitSDb:
            item_uu = item_u.appendRows([QStandardItem(UnitSName)])



        itemroot = model.invisibleRootItem()
        itemroot.appendRow(item_u)
    treeview.setModel(model)
    widget.show()
    sys.exit(app.exec_())