chengxr 1 year ago
parent
commit
509dbdd594

+ 6 - 2
QFD/QFD.pro

@@ -63,12 +63,16 @@ SOURCES += \
     main.cpp \
     view/AboutView.cpp \
     view/LoginView.cpp \
-    view/MainWindow.cpp
+    view/MainWindow.cpp \
+    widgets/LoginWidget.cpp \
+    widgets/RegisterWidget.cpp
 
 HEADERS += \
     view/AboutView.h \
     view/LoginView.h \
-    view/MainWindow.h
+    view/MainWindow.h \
+    widgets/LoginWidget.h \
+    widgets/RegisterWidget.h
 
 
 include(./mindmap/mindmap.pri)

+ 1 - 1
QFD/view/AboutView.cpp

@@ -4,7 +4,7 @@
 
 AboutView::AboutView(QWidget *parent) : QWidget(parent)
 {
-    setStyleSheet("background-color: rgb(0,222,222);");
+    setStyleSheet("background-color: rgb(222, 222, 0);");
 }
 
 void AboutView::paintEvent(QPaintEvent *event)

+ 4 - 0
QFD/view/LoginView.cpp

@@ -12,3 +12,7 @@ void LoginView::paintEvent(QPaintEvent *event)
     painter.drawPixmap(0, 0,
                        pixmap.scaled(width(), height(), Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation));
 }
+
+void LoginView::initialize() { }
+
+void LoginView::initLayout() { }

+ 10 - 1
QFD/view/LoginView.h

@@ -3,6 +3,9 @@
 
 #include <QWidget>
 
+class QBoxLayout;
+class QStackedWidget;
+
 class LoginView : public QWidget
 {
     Q_OBJECT
@@ -11,7 +14,13 @@ public:
 
     void paintEvent(QPaintEvent *event) override;
 
-signals:
+private:
+    void initialize();
+    void initLayout();
+
+private:
+    QBoxLayout *m_boxLayout         = nullptr;
+    QStackedWidget *m_stackedWidget = nullptr;
 };
 
 #endif  // LOGINVIEW_H

+ 2 - 0
QFD/view/MainWindow.cpp

@@ -78,6 +78,8 @@ void MainWindow::initialize()
 
     m_loginView = new LoginView(this);
     m_aboutView = new AboutView(this);
+
+    //    m_aboutView->setStyleSheet("background-color: rgb(222, 222, 0);");
 }
 
 void MainWindow::initWindow()

+ 6 - 0
QFD/widgets/LoginWidget.cpp

@@ -0,0 +1,6 @@
+#include "LoginWidget.h"
+
+LoginWidget::LoginWidget(QWidget *parent) : QWidget(parent)
+{
+
+}

+ 20 - 0
QFD/widgets/LoginWidget.h

@@ -0,0 +1,20 @@
+#ifndef LOGINWIDGET_H
+#define LOGINWIDGET_H
+
+#include <QWidget>
+
+class LineEdit;
+class PasswordLineEdit;
+
+class LoginWidget : public QWidget
+{
+    Q_OBJECT
+public:
+    explicit LoginWidget(QWidget *parent = nullptr);
+
+signals:
+
+private:
+};
+
+#endif  // LOGINWIDGET_H

+ 6 - 0
QFD/widgets/RegisterWidget.cpp

@@ -0,0 +1,6 @@
+#include "RegisterWidget.h"
+
+RegisterWidget::RegisterWidget(QWidget *parent) : QWidget(parent)
+{
+
+}

+ 16 - 0
QFD/widgets/RegisterWidget.h

@@ -0,0 +1,16 @@
+#ifndef REGISTERWIDGET_H
+#define REGISTERWIDGET_H
+
+#include <QWidget>
+
+class RegisterWidget : public QWidget
+{
+    Q_OBJECT
+public:
+    explicit RegisterWidget(QWidget *parent = nullptr);
+
+signals:
+
+};
+
+#endif // REGISTERWIDGET_H

+ 18 - 0
QFluentWidgets/Widgets/LineEdit.cpp

@@ -160,6 +160,24 @@ void SearchLineEdit::search()
     }
 }
 
+PasswordLineEdit::PasswordLineEdit(QWidget *parent) : LineEdit(parent)
+{
+    m_echoButton         = new LineEditButton(NEWFLICON(FluentIcon, VIEW), this);
+    QHBoxLayout *hLayout = hBoxLayout();
+    hLayout->addWidget(m_echoButton, 0, Qt::AlignRight);
+    setClearButtonEnabled(true);
+    setTextMargins(0, 0, 59, 0);
+
+    connect(m_echoButton, &LineEditButton::clicked, this, &PasswordLineEdit::switchEchoMode);
+    connect(clearButton(), &LineEditButton::clicked, this, &PasswordLineEdit::clearSignal);
+}
+
+void PasswordLineEdit::switchEchoMode()
+{
+    setEchoMode(echoMode() == QLineEdit::Normal ? QLineEdit::Password : QLineEdit::Normal);
+    emit echoModeChanged();
+}
+
 TextEdit::TextEdit(QWidget *parent) : QTextEdit(parent)
 {
     m_verticalSmoothScroll = new SmoothScroll(this, Qt::Vertical);

+ 17 - 0
QFluentWidgets/Widgets/LineEdit.h

@@ -71,6 +71,23 @@ private:
     LineEditButton *m_searchButton;
 };
 
+class PasswordLineEdit : public LineEdit
+{
+    Q_OBJECT
+public:
+    PasswordLineEdit(QWidget *parent = nullptr);
+
+signals:
+    void echoModeChanged();
+    void clearSignal();
+
+protected:
+    void switchEchoMode();
+
+private:
+    LineEditButton *m_echoButton;
+};
+
 class TextEdit : public QTextEdit
 {
     Q_OBJECT