LoginView.cpp 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #include "LoginView.h"
  2. #include "LoginWidget.h"
  3. #include "RegisterWidget.h"
  4. #include <QPainter>
  5. #include <QBoxLayout>
  6. #include <QStackedWidget>
  7. #include <QDebug>
  8. LoginView::LoginView(QWidget *parent) : QWidget(parent)
  9. {
  10. initialize();
  11. initLayout();
  12. setStackIndex(0);
  13. connectSignalsAndSlots();
  14. }
  15. void LoginView::paintEvent(QPaintEvent *event)
  16. {
  17. QWidget::paintEvent(event);
  18. QPainter painter(this);
  19. QPixmap pixmap(":/resource/background/login.jpg");
  20. painter.drawPixmap(0, 0,
  21. pixmap.scaled(width(), height(), Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation));
  22. }
  23. void LoginView::setStackIndex(int index)
  24. {
  25. m_stackedWidget->setCurrentIndex(index % m_stackedWidget->count());
  26. }
  27. void LoginView::initialize()
  28. {
  29. m_vBoxLayout = new QVBoxLayout();
  30. m_stackedWidget = new QStackedWidget(this);
  31. m_loginWidget = new LoginWidget(this);
  32. m_loginWidget->setTitle("登录管理员账号");
  33. m_registerWidget = new RegisterWidget(this);
  34. }
  35. void LoginView::initLayout()
  36. {
  37. setLayout(m_vBoxLayout);
  38. m_vBoxLayout->setAlignment(Qt::AlignCenter);
  39. m_vBoxLayout->addWidget(m_stackedWidget);
  40. m_stackedWidget->addWidget(m_loginWidget);
  41. m_stackedWidget->addWidget(m_registerWidget);
  42. }
  43. void LoginView::connectSignalsAndSlots()
  44. {
  45. connect(m_loginWidget, &LoginWidget::signalLogin, this, &LoginView::slotLogin);
  46. connect(m_loginWidget, &LoginWidget::signalCancel, this, &LoginView::slotCancelLogin);
  47. connect(m_registerWidget, &RegisterWidget::signalConfirm, this, &LoginView::slotConfirmAcc);
  48. connect(m_registerWidget, &RegisterWidget::signalCancel, this, &LoginView::slotCancelAcc);
  49. connect(m_stackedWidget, &QStackedWidget::currentChanged, this, &LoginView::slotStackIndexChanged);
  50. }
  51. void LoginView::slotLogin()
  52. {
  53. qDebug() << __FUNCTION__ << __LINE__;
  54. setStackIndex(m_stackedWidget->currentIndex() + 1);
  55. emit signalLogin();
  56. }
  57. void LoginView::slotCancelLogin()
  58. {
  59. qDebug() << __FUNCTION__ << __LINE__;
  60. setStackIndex(m_stackedWidget->currentIndex() + 1);
  61. emit signalCancelLogin();
  62. }
  63. void LoginView::slotConfirmAcc()
  64. {
  65. qDebug() << __FUNCTION__ << __LINE__;
  66. setStackIndex(m_stackedWidget->currentIndex() + 1);
  67. }
  68. void LoginView::slotCancelAcc()
  69. {
  70. qDebug() << __FUNCTION__ << __LINE__;
  71. setStackIndex(m_stackedWidget->currentIndex() + 1);
  72. }
  73. void LoginView::slotStackIndexChanged()
  74. {
  75. qDebug() << __FUNCTION__ << __LINE__;
  76. }