PyQt5 - SQL строк, скопированных из sqlite3 в QTableWidget, не отображаются - PullRequest
0 голосов
/ 17 марта 2020

Я работаю над небольшим поисковым приложением в Python / PyQt5, которое погружается в удаленный SQL db, отправляет результаты в локальный файл db и затем выводит строки из файла db в объект QTableWidget. Приложение запускается, создает локальный файл БД, но в объекте QTableWidget ничего не отображается. Я отдельно протестировал часть кода, которая вставляет строки в QTableWidget, и он работает. Так что я не слишком уверен, что искать дальше. PS. Я знаю, что общий дизайн громоздок, но я новичок в Python, и это лучшее, что я мог придумать.


1 Ответ

0 голосов
/ 17 марта 2020

По общему признанию я не очень опытен с QT, но вот как я заполняю QTableWidget:

(я скорректировал свой код на основе вашего примера)

Я использую QT designer для создания формы, содержащей QTableWidget с 4 столбцами: Затем я добавляю строки одну за другой, как это:

# add row
row_num = db_local_tableWidget.rowCount()
db_local_tableWidget.insertRow(row_num)
db_local_tableWidget.setItem(row_num , 0, QTableWidgetItem(value1))
db_local_tableWidget.setItem(row_num , 1, QTableWidgetItem(value2))
db_local_tableWidget.setItem(row_num , 2, QTableWidgetItem(value3))
db_local_tableWidget.setItem(row_num , 3, QTableWidgetItem(value4))
db_local_tableWidget.resizeColumnsToContents()

Я не думаю, что вы должны это делать:

db_local_tableWidget.setRowCount(200)
db_local_tableWidget.setColumnCount(6)

Если вы не знаете заранее, сколько строк вы получите, это нормально. Просто добавьте их как go при чтении данных.

Я не проверял остальную часть кода, но вы должны добавить отладочный вывод, либо войти в консоль, либо в файл, используя logger учебный класс. Сначала убедитесь, что ваш код с двойным for loop действительно выполняется, что значения, смещения и c являются правильными. Вы должны быть в состоянии понять это легко. Если код работает должным образом, но сетка не обновляется, это еще одна проблема.

...