1.新建初始項目
2.修改UI格式
運行效果
3.創建登錄界面
設計登錄界面UI
設計布局
調整布局間距
往水平布局中拖入標簽和文本輸入框
更換控件名稱并固定高度
添加窗口部件
往現有的資源文件中導入圖片
添加水平布局
4.設置登陸界面為主窗口的核心組件
#pragma once#include <QtWidgets/QMainWindow>
#include "ui_MainWindow.h"class LoginWidget;class MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:Ui::MainWindowClass ui;private:LoginWidget* _LoginWidget;
};#include "MainWindow.h"#include "LoginWidget.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);_LoginWidget = new LoginWidget;setCentralWidget(_LoginWidget);
}MainWindow::~MainWindow()
{}
5.創建注冊界面
設計注冊界面UI
設置整體布局為水平
添加StackWidget
設置stackedWidget整體垂直布局,子項也是垂直布局
重復創建登錄界面的操作
6.切換界面
MainWindow
public:void BindSlots();public slots:void ShowRegisterWidget();MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);_LoginWidget = new LoginWidget;_RegisterWidget = new RegisterWidget;setCentralWidget(_LoginWidget);// 綁定槽函數BindSlots();
}void MainWindow::BindSlots()
{connect(_LoginWidget, &LoginWidget::Register, this, &MainWindow::ShowRegisterWidget);
}// 槽函數
// 顯示注冊界面
void MainWindow::ShowRegisterWidget()
{setCentralWidget(_RegisterWidget);_LoginWidget->hide();_RegisterWidget->show();
}
LoginWidget
signals:void Register(); // 注冊按鈕被點擊private:Ui::LoginWidgetClass ui;private:void BindSlots();LoginWidget::LoginWidget(QWidget *parent): QWidget(parent)
{ui.setupUi(this);BindSlots();
}LoginWidget::~LoginWidget()
{}void LoginWidget::BindSlots()
{connect(ui.Register_Btn, &QPushButton::clicked, this, &LoginWidget::Register);
}
7.創建樣式表,并設置
導入資源文件中
QDialog#LoginWidget, #RegisterWidget
{
background-color:rgb(255,255,255)
}#User_Label, #PassWord_Label
{color:balck;
}
#include "MainWindow.h"
#include <QtWidgets/QApplication>
#include <QFile>
#include <QDebug>void LoadStyle(QApplication* app)
{QFile file(":/StyleSheet/StyleSheet/stylesheet.qss");if (file.open(QFile::ReadOnly)){QString style = QLatin1String(file.readAll());app->setStyleSheet(style);file.close();qDebug() << "Load Style Success";}else{qDebug() << "Load Style Failed";}
}int main(int argc, char *argv[])
{QApplication a(argc, argv);// 加載樣式表LoadStyle(&a);MainWindow w;w.show();return a.exec();
}