Casi terminé mi aplicación, cuando el cliente me preguntó si podía implementar algún tipo de formulario de inicio de sesión en el inicio de la aplicación.Diálogo de inicio de sesión PyQt
Hasta ahora he diseñado la interfaz de usuario y he reparado la ejecución real. El nombre de usuario y la contraseña son irrelevantes por ahora.
class Login(QtGui.QDialog):
def __init__(self,parent=None):
QtGui.QWidget.__init__(self,parent)
self.ui=Ui_dlgLogovanje()
self.ui.setupUi(self)
QtCore.QObject.connect(self.ui.buttonLogin, QtCore.SIGNAL("clicked()"), self.doLogin)
def doLogin(self):
name = str(self.ui.lineKorisnik.text())
passwd = str(self.ui.lineSifra.text())
if name == "john" and passwd =="doe":
self.runIt()
else:
QtGui.QMessageBox.warning(self, 'Greška',
"Bad user or password", QtGui.QMessageBox.Ok)
def runIt(self):
myprogram = Window()
myprogram.showMaximized() #myprogram is
class Window(QtGui.QMainWindow):
def __init__(self,parent=None):
QtGui.QWidget.__init__(self,parent)
self.ui=Ui_MainWindow()
self.ui.setupUi(self)
if __name__=="__main__":
program = QtGui.QApplication(sys.argv)
myprogram = Window()
if Login().exec_() == QtGui.QDialog.Accepted:
sys.exit(program.exec_())
Se muestra el formulario de inicio de sesión. Si se ingresan el nombre de usuario y la contraseña correctos, se muestra la ventana principal y funciona. Pero, el formulario de inicio de sesión permanece activo, y si lo cierro, la ventana principal también se cerrará.
por cierto, 'QtCore.QObject.connect (self.ui2.buttonLogin, QtCore.SIGNAL ("hace clic()"), self.doLogin)' puede ser reemplazado con 'auto .ui2.buttonLogin.clicked.connect (self.doLogin) ' – warvariuc