Esempio n. 1
0
def map_value_to_row(qt_model: QAbstractItemModel, column):
    '''
    qt_modelの各行(row)に対して、{引数column列目の値: row}からなる辞書を返します。

    Parameters:
    qt_model -- QAbstractItemModel型
        e.g.
            Fruit |  Color
            ------+------
        0   Apple |  Red
        1   Berry |  Blue
    
    column -- int型 列番号
        e.g. 0

    return: dict型
        e.g. {'Apple': 0, 'Berry': 1}

    '''
    number_of_rows = qt_model.rowCount()
    value_row_pair = {}

    for row in range(number_of_rows):
        index = qt_model.index(row, column)
        value = qt_model.data(index)

        if not value in value_row_pair.keys():
            value_row_pair[value] = row

    return value_row_pair
Esempio n. 2
0
    def setModelData(self, widget: QtWidgets.QComboBox,
                     model: QtCore.QAbstractItemModel,
                     index: QtCore.QModelIndex):
        record: collection.PackageObject = model.data(index, role=Qt.UserRole)
        record.component_metadata[
            collection.Metadata.TITLE_PAGE] = widget.currentText()

        model.setData(index, record, role=Qt.UserRole)
    def setModelData(  # pylint: disable=C0103,R0201
            self, widget: QtWidgets.QWidget, model: QtCore.QAbstractItemModel,
            index: QtCore.QModelIndex) -> None:
        """Set model data."""
        record: collection.PackageObject = model.data(index, role=Qt.UserRole)
        record.component_metadata[
            collection.Metadata.TITLE_PAGE] = widget.currentText()

        model.setData(index, record, role=Qt.UserRole)
Esempio n. 4
0
def export_to_file_from_table_view(file_name: str, title: tuple, sheet_name: str, model: QAbstractItemModel):
    file = xlwt.Workbook()
    sheet1 = file.add_sheet(sheet_name, cell_overwrite_ok=True)

    for index, header in enumerate(title):
        sheet1.write(0, index, header, set_style('Times New Roman', 220, True))
    default = set_style('SimSun', 180, True, True, True)
    for row in range(model.rowCount()):
        for col in range(model.columnCount()):
            index = model.index(row, col)
            data = model.data(index)
            sheet1.write(row + 1, col, data, default)
    file.save(file_name)
Esempio n. 5
0
 def initFromNewModel(self, orientation: int,
                      model: QAbstractItemModel):
     self.headerModel = model.data(
         QModelIndex(), HorizontalHeaderDataRole
         if orientation == Qt.Horizontal else VerticalHeaderDataRole)