QTableWidget insertRow()插入空行

时间:2020-07-27 12:02:18

标签: python pyqt pyqt5 qtablewidget qtablewidgetitem

在填充表格行以避免添加空行时我缺少的东西。例如,如果插入的项目是两个,则在顶部再添加一个空行,依此类推:

def search_watchlist_category(self) -> None:
    """ Get details watchlist based on the search word matches
    :return None
    """
    search_word = ErrorMessaging.remove_spaces(self.searchText.text())

    if search_word == '':
        self.watchlist_results.watchlistsTable.setRowCount(0)
        self.watchlistButton.setText("Watchlist")
        self.watchlistButton.setStyleSheet('color: #FFFFFF; background-color: #312624; border: 0px')

    else:
        search_query = search_word.split(' ')[0]

        response = utils.search_watchlists(search_query)
        self.watchlist_results.watchlistsTable.setRowCount(0)

        matched_results = response['watchlist_details']
        num_rows = len(matched_results)

        self.watchlist_results.watchlistsTable.setRowCount(num_rows)

        for watchlist_category in response['watchlist_details']:
            self.watchlist_results.watchlistsTable.verticalHeader().setVisible(False)
            self.watchlist_results.watchlistsTable.setShowGrid(False)
            self.watchlist_results.watchlistsTable.horizontalHeader().setStyleSheet(
                'background-color: transparent;')
            self.watchlist_results.watchlistsTable.horizontalHeader().setSectionResizeMode(
                QtWidgets.QHeaderView.ResizeToContents)

            self.watchlist_results.watchlistsTable.horizontalHeader().setVisible(True)

            checkbox_item = QtWidgets.QTableWidgetItem('')
            checkbox_item.setFlags(checkbox_item.flags() | Qt.ItemIsUserCheckable |
                                   QtCore.Qt.ItemIsSelectable)
            checkbox_item.setCheckState(QtCore.Qt.Unchecked)
            checkbox_item.setForeground(QtGui.QColor('#FFFFFF'))

            watchlist_targets = utils.get_persons_of_interest_in_category(watchlist_category.id)

            target_item = QtWidgets.QTableWidgetItem(str(len(watchlist_targets)))
            target_item.setForeground(QtGui.QColor('#FFFFFF'))

            watchlist_item = QtWidgets.QTableWidgetItem(f"{watchlist_category.name}")
            watchlist_item.setForeground(QtGui.QColor('#FFFFFF'))

            watchlist_item.setData(Qt.UserRole, watchlist_category.id)
            watchlist_item.setData(Qt.UserRole + 1, watchlist_category.date_created)
            watchlist_item.setData(Qt.UserRole + 2, watchlist_category.description)
            watchlist_item.setData(Qt.UserRole + 3, watchlist_category.color)

            row_position = self.watchlist_results.watchlistsTable.rowCount()
            self.watchlist_results.watchlistsTable.insertRow(row_position)
            self.watchlist_results.watchlistsTable.setItem(row_position - 1, 0, checkbox_item)
            self.watchlist_results.watchlistsTable.setItem(row_position - 1, 1, watchlist_item)
            self.watchlist_results.watchlistsTable.setItem(row_position - 1, 2, target_item)

            self.watchlistButton.setText("Watchlist(" + str(num_rows) + ")")

0 个答案:

没有答案