PyQt5 QTableWidget показывает только первую строку и столбец

У меня есть QTableWidget заполненный списком списков. Каждый внутренний список состоит из восьми элементов, а в моей таблице есть девятый контрольный столбец, вычисляемый после загрузки остальных. Я могу читать и печатать для консоли содержимое любой ячейки таблицы, например print(self.tAccounts.item(52,3).text()), поэтому я думаю, что с данными нет проблем, но таблица показывает только содержимое ячейки для первой строки и столбца в таблице, оставляя остальные банк. Я должен был сделать ошибку в каком-то месте, но я не вижу.

Использование PyQt 5 и Python 3.

Конструктор

class Table(QWidget):
    def __init__(self, parent=None):
        super(Table, self).__init__(parent)

        self.accounts = [] # The source is created in the constructor\
                           # and populate in other member function
        self.tAccounts = QTableWidget(0,9)
        self.tAccounts.setSortingEnabled(True)
        self.tAccounts.setHorizontalHeaderLabels(['1','2','3','4','5','6','7','8','9'])
        self.tAccounts.resizeColumnsToContents()
        self.tAccounts.verticalHeader().hide()

Функция-член:

def loadDay(self):
    for row, account in enumerate(self.accounts):
        self.tAccounts.insertRow(row)
        for col in range(8):
            self.tAccounts.setItem(row, col, QTableWidgetItem(str(accounts[col])))
            self.tAccounts.item(row,col).setTextAlignment(Qt.AlignRight)
        self.tAccounts.setItem(row, 8, QTableWidgetItem('')) # defined for further use

person Cochise    schedule 09.12.2014    source источник


Ответы (1)


Наконец я нашел это.

Проблема в том, чтобы включить сортировку в конструкторе. Похоже, сортировка по умолчанию - Я-А. Изменение сортировки на A – Z, щелкнув заголовок пустой таблицы, решает ошибку, но лучшее решение - переместить строку self.tAccounts.setSortingEnabled(True) в конец функции loadDay. Кажется, это конфликт между постоянно меняющимся номером строки из-за включенной сортировки и алгоритмом обновления QTableWidget

person Cochise    schedule 09.12.2014