Я создаю графический интерфейс для базы данных с pyqt. База данных кодируется в 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()
Кроме того, я создал еще один класс, который позволяет добавить нового пользователя, но когда я вызываю функцию «обновление», список не обновляется новыми данными. С другой стороны, я должен перезапустить программу для просмотра последних обновлений в базе данных. Что делать, чтобы не перезапускать программу и немедленно обновлять ее?
Я сделал это, и появился mistige TraceBack (самый последний вызов последнего): Файл "pyqt2.py", строка 367, в Nuser self.list.clear() AttributeError: объект 'AddWin' не имеет атрибута ' list ' –
Не self.list при вызове из другого класса: замените self тем, что вы назвали экземпляром (mainwindow, может быть?). – mdurant