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")));
}