QT聊天项目DAY01

1.新建初始项目

2.修改UI格式

运行效果

3.创建登录界面

设计登录界面UI

设计布局

调整布局间距

往水平布局中拖入标签和文本输入框

更换控件名称并固定高度

添加窗口部件

往现有的资源文件中导入图片

添加水平布局

4.设置登陆界面为主窗口的核心组件

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_MainWindow.h"

class LoginWidget;

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    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();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值