Когда я добавляю новый элемент в базу данных, qcompleter не показывает этот новый элемент. Когда я закрываю программу и запускаю ее снова, эта запись отображается в qcompleter. QCompleter не обновляет свое значение во время выполнения. Принимая во внимание, что новый элемент можно искать в функции поиска во время выполнения.
QCompleter создает свой список строк при отладке и не обновляет его динамически
QCompleter в файле Stocks / Inventory Manager *
self.stock_name_add = QLineEdit()
tuples=[]
tuples= mp.completer_input()
stockName=[tup[0] for tup in tuples]
completer = QCompleter(stockName, self.stock_name_add)
self.stock_name_add.setCompleter(completer)
self.stock_name_add.show()
Функция Completer_Input в файле манипуляции базой данных
def completer_input():
with conn:
result = []
c.execute("SELECT name FROM stock")
for row in c.fetchall():
result.append(row)
return result
Функция обновления количества в файле управления базой данных
def update_quantity(name, val, date):
with conn:
c.execute("SELECT quantity FROM stock WHERE name = :name",{'name':name})
z = c.fetchone()
cost = z[0]+val
if cost < 0:
return
c.execute("""UPDATE stock SET quantity = :quantity WHERE name = :name""",{'name': name, 'quantity': cost})
conn.commit()
on_click () для добавления нового элемента в базу данных
def on_click(self):
now = datetime.datetime.now()
stock_name_inp = self.stock_name.text().replace(' ','_').lower()
stock_count_inp = int(self.stock_count.text())
stock_cost_inp = int(self.stock_cost.text())
global stock_minCount_inp
stock_minCount_inp = int(self.stock_minCount.text())
stock_add_date_time = now.strftime("%Y-%m-%d %H:%M")
d = mp.insert_prod(stock_name_inp,stock_count_inp,stock_cost_inp,stock_minCount_inp,stock_add_date_time)
QtWidgets.QMessageBox.warning(self, 'Operation Successful', 'Stock name added to database')
qcompleter, показывающий только список qcompleter, скомпилированный во время отладки, а не какой-либоновый элемент, добавленный в базу данных во время выполнения, будет отображать новый элемент при выходе из программы и повторном запуске