Python PyQt - QTableWidget, JSON и emitSignal, вызывающие пустые ячейки

Я использую PyQt для простого приложения, которое читает из файла журнала строки в формате JSON и выводит их в виде таблицы.

Все работает, как и ожидалось, за исключением случаев, когда я пытаюсь излучать сигнал от функции загрузки. Этот сигнал принимается главным окном в слоте, предназначенном для добавления в таблицу новой информации.

Без испускаемого сигнала таблица заполняется полностью и правильно:

Раскомментировавself.emit так что сигнал испускается, таблица оказывается неполной:

Как видно на первом изображении, таблица НЕ отсортирована, но все поля заполнены. На втором изображении таблица отсортирована, но некоторые поля пусты!

Код, который заполняет таблицу и отправляет сигнал:

#openLog function does stuff, then populates the table as follows

self.ui.tableWidget.setRowCount(len(entries))
self.ui.tableWidget.verticalHeader().setVisible(False)

for i, row in enumerate(entries):
    for j, col in enumerate(row):
        item = QtGui.QTableWidgetItem(col)
        self.ui.tableWidget.setItem(i, j, item)

#When this is uncommented, the table ends up having a lot of blank cells.
#self.emit(QtCore.SIGNAL("updateSignal"))

Код для получения сигнала и действия:

#main window class
    #__init__
        self.ui.tableWidget.connect(self,QtCore.SIGNAL("updateSignal"),self.updateTable)

    def updateTable(self):
        self.ui.tableWidget.sortItems(0,QtCore.Qt.DescendingOrder)

Поток программы называется: program_init-> register_signal. Действие пользователя для открытия журнала -> функция openLog, которая заполняет таблицу / испускает сигнал-> сигнал принимается / прибегает к таблице

Для этого метода я использую сигналы и слоты, как если бы я этого не делал, QT / Python выдает кучу предупреждений о том, что небезопасно перерисовывать GUI / Pixmap из функции.

Вопрос: Как я могу сделать сортировку QTableWidget по желаемому столбцу, а также обеспечить заполнение таблицы?

Ответы на вопрос(2)

Ваш ответ на вопрос