LoginWidget.cpp 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #include "LoginWidget.h"
  2. #include <Widgets/LineEdit.h>
  3. #include <Widgets/CheckBox.h>
  4. #include <Widgets/Button.h>
  5. #include <QBoxLayout>
  6. #include <QLabel>
  7. LoginWidget::LoginWidget(QWidget *parent) : QWidget(parent)
  8. {
  9. initialize();
  10. initLayout();
  11. connectSignalsAndSlots();
  12. }
  13. void LoginWidget::setTitle(const QString title)
  14. {
  15. m_titleLabel->setText(title);
  16. }
  17. const QString LoginWidget::account() const
  18. {
  19. return m_accLineEdit->text();
  20. }
  21. const QString LoginWidget::password() const
  22. {
  23. return m_pwLineEdit->text();
  24. }
  25. void LoginWidget::initialize()
  26. {
  27. m_vBoxLayout = new QVBoxLayout(this);
  28. m_titleLabel = new QLabel(this);
  29. m_titleLabel->setStyleSheet("color:#ffffff;");
  30. QFont ft;
  31. ft.setPointSize(15);
  32. ft.setBold(true);
  33. m_titleLabel->setFont(ft);
  34. m_accLineEdit = new LineEdit(this);
  35. m_accLineEdit->setIsClearButtonEnabled(true);
  36. m_accLineEdit->setPlaceholderText("请输入账号");
  37. m_accLineEdit->setFixedWidth(250);
  38. m_pwLineEdit = new PasswordLineEdit(this);
  39. m_pwLineEdit->setPlaceholderText("请输入密码");
  40. m_pwLineEdit->setFixedWidth(250);
  41. m_remLayout = new QHBoxLayout();
  42. m_remCheckBox = new CheckBox("记住密码", this);
  43. const QString &s = m_remCheckBox->styleSheet() + "CheckBox {color:white}";
  44. m_remCheckBox->setStyleSheet(s);
  45. m_buttonLayout = new QHBoxLayout();
  46. m_loginButton = new PushButton("登录", this);
  47. m_cancelButton = new PushButton("取消", this);
  48. }
  49. void LoginWidget::initLayout()
  50. {
  51. setLayout(m_vBoxLayout);
  52. m_vBoxLayout->setAlignment(Qt::AlignCenter);
  53. m_vBoxLayout->addWidget(m_titleLabel);
  54. m_vBoxLayout->addSpacing(20);
  55. m_vBoxLayout->addWidget(m_accLineEdit);
  56. m_vBoxLayout->addSpacing(20);
  57. m_vBoxLayout->addWidget(m_pwLineEdit);
  58. m_vBoxLayout->addSpacing(20);
  59. m_vBoxLayout->addLayout(m_remLayout);
  60. m_remLayout->addWidget(m_remCheckBox);
  61. m_remLayout->addSpacing(30);
  62. m_vBoxLayout->addSpacing(40);
  63. m_vBoxLayout->addLayout(m_buttonLayout);
  64. m_buttonLayout->addWidget(m_loginButton);
  65. m_buttonLayout->addSpacing(20);
  66. m_buttonLayout->addWidget(m_cancelButton);
  67. }
  68. void LoginWidget::connectSignalsAndSlots()
  69. {
  70. connect(m_loginButton, &PushButton::clicked, this, &LoginWidget::signalLogin);
  71. connect(m_cancelButton, &PushButton::clicked, this, &LoginWidget::signalCancel);
  72. }