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
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)
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)
def initFromNewModel(self, orientation: int, model: QAbstractItemModel): self.headerModel = model.data( QModelIndex(), HorizontalHeaderDataRole if orientation == Qt.Horizontal else VerticalHeaderDataRole)