当我向数据库添加新项时,qcompleter不会显示该新项。 当我关闭程序并再次运行它时,该条目将显示在qcompleter中。QCompleter不会在运行时更新其值。 然而,可以在运行时在搜索函数中搜索新项
QCompleter在调试时生成其stringlist,而不是动态更新它
库存/库存经理文件中的QCompleter
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_输入函数
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()
单击()将新项目添加到数据库
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列表 并且在运行时不会在数据库中添加任何新项 当程序退出并再次运行时,它将显示新项目
目前没有回答
相关问题 更多 >
编程相关推荐