Есть ли способ динамически обновлять таблицу по мере добавления данных?
К примеру - есть изначально выгруженные в таблицу данные из бд, появилась необходимость дополнить их, по нажатию кнопки вылазит диалоговое окно, заполняются данные и уходят в бд и одновременно в таблицу, этот способ не очень мне подходит.
Можно ли сразу после добавления данных в бд заново заполнить таблицу ? Или как-то обновить её данные ?
Пробовал так -
self.tableWidget.clear()
table_index = 0
self.add_table()
Но данные не добавляются и увеличивается кол-во последующих строк
Ответы (2 шт):
Я очень рекомендую вам начать изучение Qt SQL и SQL Programming
А также посмотрите некоторые ответы как правильно работать с БД использую PyQt: PyQt5 и QtSql, вывод элементов БД , PYQt5. Вызов формы для заполнения БД, считывание данных из этой формы
А решил я данную ситуацию таким способом -
def update_table(self):
sqlite_connection = sqlite3.connect("New.db")
cursor = sqlite_connection.cursor()
sqlite_select_query = """SELECT ip FROM ips"""
cursor.execute(sqlite_select_query)
records = cursor.fetchall()
cursor.close()
sqlite_connection.close()
table_index = self.ui.tableWidget.rowCount()
self.ui.tableWidget.insertRow(table_index)
if len(records) == table_index:
self.ui.tableWidget.setRowCount(table_index)
elif len(records) > table_index:
con = len(records) - table_index
self.ui.tableWidget.clearContents()
self.tab()
self.ui.tableWidget.setRowCount(table_index + con)
elif len(records) < table_index:
con = table_index - len(records)
self.ui.tableWidget.clearContents()
self.tab()
self.ui.tableWidget.setRowCount(table_index - con)