7

私の質問は、ラベルのテキストを変更するにはどうすればよいですか? ラベルはレイアウト内にありますが、setText()機能していないようです - 多分私はそれを正しくしていません.

これが私のコードです:

これはメイン ウィンドウの GUI で、Qt-Designer が提供するものです。

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))

これはインターフェイスのロジックです。

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_())    

ユーザーがプログラムにログインしたら、ラベルを変更したいと思います。変更したいラベルはで、QLineEdits の 1 つに対応する にlabel_nombre置き換えたいと考えています。le_user

アップデート

私はあなたが私に言ったすべての変更を加えました.プロジェクトはかなり整理されているように見えますが、今私はこの出力を得ています:

TypeError: 記述子 ' init ' には 'sip.simplewrapper' オブジェクトが必要ですが、'logica_login' を受け取りました

更新 2

*TypeError: 記述子 ' init ' には 'sip.simplewrapper' オブジェクトが必要ですが、'logica_login' を受け取りました -------------------------> SOLVE

今、私はこのすべての取引を始めたのと同じ問題を抱えています. レーベルはその内容を変更しません.

4

2 に答える 2