Changement QLabel texte de façon dynamique dans PyQt4

Ma question est: comment puis-je modifier le texte dans un label? L'étiquette est à l'intérieur d'une mise en page, mais setText() ne semble pas fonctionner - peut-être que je ne suis pas en train de faire.

Voici mon code:

c'est la Principale interface utilisateur windows, le un Qt-Designer donne:

class Ui_dashboard(QtGui.QMainWindow):
def setupUi(self, dashboard):
dashboard.setObjectName(_fromUtf8("dashboard"))
dashboard.resize(734, 703)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(_fromUtf8("../../../../Documents and Settings/cgarcia/Escritorio/metromara - imagenes - nerio/logoM.JPG")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
dashboard.setWindowIcon(icon)
dashboard.setWindowOpacity(1.0)
self.centralwidget = QtGui.QWidget(dashboard)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.frame = QtGui.QFrame(self.centralwidget)
self.frame.setGeometry(QtCore.QRect(30, 20, 261, 119))
self.frame.setFrameShape(QtGui.QFrame.Box)
self.frame.setFrameShadow(QtGui.QFrame.Plain)
self.frame.setObjectName(_fromUtf8("frame"))
self.gridLayout = QtGui.QGridLayout(self.frame)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.label_5 = QtGui.QLabel(self.frame)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_5.setFont(font)
self.label_5.setObjectName(_fromUtf8("label_5"))
self.gridLayout.addWidget(self.label_5, 4, 0, 1, 1)
self.label_4 = QtGui.QLabel(self.frame)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_4.setFont(font)
self.label_4.setObjectName(_fromUtf8("label_4"))
self.gridLayout.addWidget(self.label_4, 3, 0, 1, 1)
self.label_ci = QtGui.QLabel(self.frame)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_ci.setFont(font)
self.label_ci.setObjectName(_fromUtf8("label_ci"))
self.gridLayout.addWidget(self.label_ci, 1, 1, 1, 1)
self.label_cargo = QtGui.QLabel(self.frame)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_cargo.setFont(font)
self.label_cargo.setObjectName(_fromUtf8("label_cargo"))
self.gridLayout.addWidget(self.label_cargo, 2, 1, 1, 1)
self.label_gerencia = QtGui.QLabel(self.frame)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_gerencia.setFont(font)
self.label_gerencia.setObjectName(_fromUtf8("label_gerencia"))
self.gridLayout.addWidget(self.label_gerencia, 3, 1, 1, 1)
self.label_nombre = QtGui.QLabel(self.frame)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_nombre.setFont(font)
self.label_nombre.setObjectName(_fromUtf8("label_nombre"))
self.gridLayout.addWidget(self.label_nombre, 0, 1, 1, 1)
self.label_2 = QtGui.QLabel(self.frame)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_2.setFont(font)
self.label_2.setObjectName(_fromUtf8("label_2"))
self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
self.label = QtGui.QLabel(self.frame)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setObjectName(_fromUtf8("label"))
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
self.label_3 = QtGui.QLabel(self.frame)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_3.setFont(font)
self.label_3.setObjectName(_fromUtf8("label_3"))
self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
self.label_departamento = QtGui.QLabel(self.frame)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.label_departamento.setFont(font)
self.label_departamento.setObjectName(_fromUtf8("label_departamento"))
self.gridLayout.addWidget(self.label_departamento, 4, 1, 1, 1)
self.treeView = QtGui.QTreeView(self.centralwidget)
self.treeView.setGeometry(QtCore.QRect(30, 160, 161, 481))
self.treeView.setFrameShape(QtGui.QFrame.Box)
self.treeView.setFrameShadow(QtGui.QFrame.Plain)
self.treeView.setObjectName(_fromUtf8("treeView"))
dashboard.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(dashboard)
self.menubar.setGeometry(QtCore.QRect(0, 0, 734, 20))
self.menubar.setObjectName(_fromUtf8("menubar"))
dashboard.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(dashboard)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
dashboard.setStatusBar(self.statusbar)
self.retranslateUi(dashboard)
QtCore.QMetaObject.connectSlotsByName(dashboard)
def retranslateUi(self, dashboard):
dashboard.setWindowTitle(_translate("dashboard", "Metro de Maracaibo.", None))
self.label_5.setText(_translate("dashboard", "DEPARTAMENTO", None))
self.label_4.setText(_translate("dashboard", "GERENCIA", None))
self.label_ci.setText(_translate("dashboard", "...", None))
self.label_cargo.setText(_translate("dashboard", "...", None))
self.label_gerencia.setText(_translate("dashboard", "...", None))
self.label_nombre.setText(_translate("dashboard", "...", None))
self.label_2.setText(_translate("dashboard", "C.I.:", None))
self.label.setText(_translate("dashboard", "NOMBRE", None))
self.label_3.setText(_translate("dashboard", "CARGO", None))
self.label_departamento.setText(_translate("dashboard", "...", None))

c'est la logique des interfaces:

class logica_login(Ui_Dialog):
def __init__(self):
QtGui.QDialog.__init__(self)
#QtGui.QMainWindow.__init__(self)
Dialog = Ui_Dialog(self)
self.setupUi(Dialog)
self.bloguin_aceptar.clicked.connect(self.validacion)
self.blogin_cancelar.clicked.connect(self.reject)
Dialog.show()
Dialog.exec_()
#PRINT DE PRUEBA
print('hola')
#METODO DE VALIDACION
#####################
def validacion(self):
#CONEXION A LA BASE DE DATOS.
#############################
db = QSqlDatabase.addDatabase("QPSQL")
db.setHostName("localhost")
db.setDatabaseName("postgres")
db.setUserName("postgres")
db.setPassword("1234")
#self.ui.label_nombre.setText(str(Ui_Dialog.le_user.text()))
#RESPUESTA EN CASO DE FALLO EN CONEXION CON LA BASE DE DATOS.
#############################################################
if not db.open():
QtGui.QMessageBox.about(self, "ERROR","LO SENTIMOS, EXPERIMENTAMOS PROBLEMAS DE CONEXION CON EL SERVIDOR.")
#CONSULTA A LA BASE DE DATOS DE LA CLAVE Y CONTRASEÑA
#####################################################
consulta = QSqlQueryModel()
consulta.setQuery("SELECT usuario, contraseña, id FROM usuarios")
lista = []
i = consulta.rowCount()
#BUCLE DE EXTRACCION Y REORDENACION DE DATOS EN LA LISTA "LISTA"
################################################################
while i >= 0:
db_user = consulta.record(i).value("usuario");
db_pass = consulta.record(i).value("contraseña");
db_id = consulta.record(i).value("id")
str_user = str(db_user)
str_pass = str(db_pass)
auth_db = (str_user, str_pass)
lista.append(auth_db)
i = (i-1)
print(lista)
user = self.le_user.text()
passw = self.le_pass.text()
for usrname, password in lista:
if ((user == usrname) and (passw == password)):
print('logueo exitoso')
QtGui.QMessageBox.about(self, "Logue Exitoso.", "ACCESO CONCEDIDO.")
self.deleteLater()
go = True
print(go)
dashboard.showMaximized()
#self.ui.label_nombre.setText(str(Ui_Dialog.le_user.text())) ### LOGICA_LOGIN NO TIENE ATRIBUTO UI
break;
elif ((user == usrname) and (passw != password)):
QtGui.QMessageBox.about(self, "ERROR","Contraseña Incorrecta.")
break;
elif ((user != usrname) and (passw == password)):
QtGui.QMessageBox.about(self, "ERROR","Nombre de usuario Incorrecto")
break;
else:
QtGui.QMessageBox.about(self, "ERROR","Nombre de usuario y Contraseña Incorrecto")
class logica_tablero(Ui_dashboard):
def __init__(self):
l_n = Ui_dashboard.label_nombre()
QtGui.QMainWindow.__init__(self)
self.ui = Ui_dashboard(self)
self.ui.setupUi(self)
#logica_tablero.ui.l_n.setText("hola")
Ui_dashboard.label_5.setText(("hola"))
def main():
app = QtGui.QApplication(sys.argv)
if 1 == 1 :
loginApp = logica_login()
loginApp.show()
else:
mainApp = Ui_dashboard()
mainApp.setupUi(dash)
dash.showMaximized()
#Ui_dashboard.label_nombre.setText(("hola"))
sys.exit(app.exec_())
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
## ESTA PARTE HA SIDO UN DOLOR DE CABEZA, NO OLVIDAR NI BORRAR.
#BUCLE DE DASHBOARD
#---------------------------------
dashboard = QtGui.QMainWindow()
mainApp = Ui_dashboard()
mainApp.setupUi(dashboard)
#BUCLE DE LOGIN
#---------------------------------
l = logica_login()
l   
#---------------------------------
sys.exit(app.exec_())    

Je veux changer les étiquettes une fois que l'utilisateur ouvre une session dans le programme. L'étiquette je veux changer est label_nombre, et je veux le remplacer par le_user, qui correspond à l'un des QLineEdits.

Mise à JOUR

J'ai fait toutes les modifications que vous m'avez dit de faire, le projet est assez bien organisé, mais maintenant j'obtiens ce résultat:

TypeError: descripteur 'init exige un sip.simplewrapper' objet, mais a reçu un "logica_login'

Mise à JOUR 2

*TypeError: descripteur 'init exige un sip.simplewrapper' objet, mais a reçu un "logica_login' -------------------------> RÉSOUDRE

Maintenant, j'ai le même problème qui a commencé tout cela face, l'étiquette l'habitude de changer son contenu.

OriginalL'auteur n3rio | 2013-11-14