当前位置: 首页 > news >正文

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

相关文章:

  • 设计模式 --- 命令模式
  • C++进阶——C++11_{ }初始化_lambda_包装器
  • Flutter常用组件实践
  • python+requests接口自动化测试框架实例教程
  • C#容器源码分析 --- Queue<T>
  • 2025届蓝桥杯JavaB组个人题解(暂时不全,没题目)
  • 【AI】AI大模型发展史:从理论探索到技术爆发
  • [创业之路-366]:投资尽职调查 - 尽调核心逻辑与核心影响因素:价值、估值、退出、风险、策略
  • webpack vite
  • 基于 Termux 在移动端配置 Ubuntu 系统并搭建工作环境
  • DeepSeek在应急救援领域的应用解决方案
  • docker测试镜像源
  • 如何在运行时获取硬件信息
  • day24 学习笔记
  • Linux:35.其他IPC和IPC原理+信号量入门
  • 自动驾驶的数据集以及yolov8和yolop
  • Oracle 复制表结构(含索引、主键)操作指南
  • 池式结构---内存池
  • 企业年报问答RAG挑战赛冠军方案:从零到SotA,一战封神
  • AI 大语言模型 (LLM) 平台的整体概览与未来发展
  • 月编程做网站/自己做seo网站推广
  • 黑龙江城乡建设厅网站/商品推广
  • dedecms 网站地图/怎么在百度发布信息
  • 凡客网站建设/外贸企业网站设计公司
  • 电竞竞猜网站 建设/怎么免费制作网页
  • 政府类网站建设费用/申请一个网站