Red de conocimiento informático - Espacio del host - Espero que c++ pueda implementar el inicio de sesión en la interfaz en qt

Espero que c++ pueda implementar el inicio de sesión en la interfaz en qt

Como referencia:

archivo principal.cpp #include?

#include?"clogindialog.h"

int ?main(int?argc,?char?*argv[] )

{

QApplication?app(argc,?argv);

CLoginDialog?* loginDlg?=?new?CLoginDialog();

loginDlg->show();

return?app.exec();

}

archivo cloginDialog.h #ifndef?CLOGINDIALOG_H

#define?CLOGINDIALOG_H

#include?

#include?

#include?

#include?

#include?

#include?

p>

clase?CLoginDialog?*parent?=? nullptr);

privado?ranura:

void?showMainWindow();

privado:

QComboBox?*userTypeCombo;

};

#endif?/?CLOGINDIALOG_H

clogindialog. archivo cpp #include? "clogindialog.h"

#include?"cwidgeta.h"

#include?"cwidgetb.h"

CLoginDialog:: CLoginDialog(QWidget?* padre)? :?QDialog(padre)

{

QHBoxLayout?*lineLayout1?=?new?QHBoxLayout();

lineLayout1 ->addWidget(new ?QLabel(tr("Tipo de inicio de sesión")));

userTypeCombo?=?new?QComboBox();

userTypeCombo->addItem(tr(" Profesor"), 0 );

userTypeCombo->addItem(tr("Estudiante"), 1);

lineLayout1->addWidget(userTypeCombo);

QHBoxLayout?*addStretch ();

QPushButton?*loginBt?=?new?QPushButton(tr("Iniciar sesión"));

conectar(loginBt,&QPushButton::clic, this,&.CLoginDialog ::showMainWindow);

lineLayout2->addWidget(loginBt);

QVBoxLayout?*mainLayout?=?new?QVBoxLay

out();

mainLayout->addLayout(lineLayout1);

mainLayout->addLayout(lineLayout2);

setLayout(mainLayout);

}

void?CLoginDialog::showMainWindow()

{

if(userTypeCombo->currentData()? ==?0){

CWidgetA?*a?=?new?CWidgetA();

a->show();

}else{

CWidgetB?*b?=?new?CWidgetB();

b->mostrar()

}

cerrar();

}

archivo cwidgeta.h #ifndef?CWIDGETA_H

#define?CWIDGETA_H

#include?

clase?CWidgetA?:?público?QMainWindow

{

Q_OBJECT

p>público:

explícito?CWidgetA (QWidget?*parent?=?nullptr);;

};

#endif?//?CWIDGETA_H

archivo cwidgeta.cpp #include?" cwidgeta.h"

#include?

CWidgetA:.CWidgetA(QWidget?*padre)? :?QMainWindow(padre)

{

setCentralWidget(new?QLabel(tr("Esta es la ventana A"));

}

cwidgetb.h

#ifndef ?CWIDGETB_H

#define?CWIDGETB_H

#include?

clase?CWidgetB?:?public?QMainWindow

{

Q_OBJECT

público:

explícito?CWidgetB(QWidget?*parent?=?nullptr);

};

#endif?//?CWIDGETB_H

cwidgetb.cpp#include?" cwidgetb.h"

#include?

CWidgetB ::CWidgetB(QWidget?*parent)? :?QMainWindow(parent)

{ setCentralWidget(new?QLabel(tr("Esta es la ventana B")));

}