gpt4 book ai didi

python - 修改其他类的列表框

转载 作者:行者123 更新时间:2023-11-30 00:02:55 25 4
gpt4 key购买 nike

我正在使用 pyqt 为数据库制作 GUI。数据库编码为mysql。此外,主窗口有一个 QListWidget,它允许通过更新函数查看数据库的数据。

def update(self, bd1='',sql1=''):
try:
cur = bd1.cursor()
cur.execute(sql1)
data = cur.fetchall()
#print data
for registro in data:
#Asignacion de registros a variables
n = registro[0]
LName= registro[1]
Name = registro[2]
ID = registro[3]
LName1= registro[4]
Name1 = registro[5]
ID1 = registro[6]
Tip = registro[7]
Cel = registro[8]
Tel1 = registro[9]
Tel2 = registro[10]
Email= registro[11]
City = registro[12]

print 'Entro'
#Colocacion de datos al listbox
self.list.addItem(LName + "," + " " + Name)
self.list.addItem("CC" + " " + ID)

#Arreglo Cel
if (Cel==None or LName1==None) or (Tel1==None and Tel2==None) or Email==None:
pass

elif Tel1!=None and Tel2==None:
self.list.addItem("Tel: " + Tel1)
elif Tel1==None and Tel2!=None:
print "Error Telefonos en la base de datos"
else:
self.list.addItem("Cel: " + Cel)
self.list.addItem(LName1 + "," + " " + Name1)
self.list.addItem("CC" + " " + ID1)
self.list.addItem("Tel: " + Tel1 + " - " + Tel2)
self.list.addItem("Email: " + Email)

#Arreglo Ciudad
if City==None:
self.list.addItem("Ciudad: " + "Bucaramanga")
else:
self.list.addItem("Ciudad: " + City)

#Arreglo Tipologia
if Tip==None:
self.list.addItem(" ")
else:
self.list.addItem("Tipologia: " + Tip + "\n")


except:
print "Error en obtencion de datos"
#Desconexion de la BD
bd1.close()

此外,我创建了另一个允许添加新用户的类,但是当我调用函数“更新”时,列表不会使用新数据进行更新。另一方面,我必须重新启动程序才能查看数据库中的最新更新。我应该怎样做才能避免重新启动程序并立即更新?

最佳答案

如果您是其他函数,则需要在最后调用update()

def add_user():
# Code to add user to database
# remember to commit()
self.list.clear()
self.update(#appropriate parameters)

这会在更新调用之前清除 self.list 小部件,否则您将出现重复的数据。当使用适当的参数调用 self.update() 时,self.list 将使用查询中的数据重新填充。

要记住的一件事是,将用户添加到数据库后,请务必提交更改。如果不这样做,您的 update() 将看不到新用户的信息。

关于python - 修改其他类的列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24867552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com