Qt实现简易聊天室

本文介绍了如何使用Qt框架设计并实现一个简单的聊天室应用。包括群成员展示界面和聊天界面的UI设计,详细展示了denglu.h、widget.h、denglu.cpp、main.cpp和widget.cpp等代码。此外,还分享了软件制作过程,强调了在Release模式下构建以减小.exe文件大小,并推荐使用Enigma Virtual Box进行打包,以使软件能在其他计算机上运行。虽然最终软件缺少图标,但不失为一个成功的实践项目。
摘要由CSDN通过智能技术生成

目录

一、界面展示(界面用ui 设计)

 群成员展示界面( denglu)

   聊天界面展示( widget )

二、代码展示 (所有代码非原创)

 denglu.h和widget.h

 denglu.cpp、main.cpp、widget.cpp

三、软件制作


一、界面展示(界面用ui 设计)

 群成员展示界面( denglu)

 

   聊天界面展示( widget )

二、代码展示 (所有代码非原创)

 denglu.h和widget.h

#ifndef DENGLU_H
#define DENGLU_H

#include <QWidget>

namespace Ui {
class denglu;
}

class denglu : public QWidget
{
    Q_OBJECT

public:
    explicit denglu(QWidget *parent = nullptr);
    ~denglu();

private:
    Ui::denglu *ui;
    QVector<bool> IsShow;
};

#endif // DENGLU_H

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include<QUdpSocket>
namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent,QString name);
    //重写关闭事件
    void closeEvent(QCloseEvent *);
     enum Msgtype{Msg,UserEnter,UserLeft};//枚举 分别代表 普通信息 用户进入 用户离开
     void sndMsg(Msgtype type);//广播udp信息
     QString getName();//获取名字
     QString getMsg();//获取聊天信息
     void userEnter(QString username);//处理用户进入
     void userLeft(QString username,QString time);//处理用户离开
     void ReceiveMessage();   //接受UDP消息
    ~Widget();
signals:

    void closeWidget();

private:
    Ui::Widget *ui;
    QString myname;
    quint16 port;//端口
    QUdpSocket *udpSocket;//udp 套接字
};

#endif // WIDGET_H

 denglu.cpp、main.cpp、widget.cpp

#include "denglu.h"
#include "ui_denglu.h"
#include<QIcon>
#include<QToolButton>
#include"widget.h"
#include<QMessageBox>

denglu::denglu(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::denglu)
{
    ui->setupUi(this);
    //设置图标
    //路径: 冒号+前缀+路径
    this->setWindowIcon(QIcon(":/imagine/qq.jpg"));
    //设置名称
    this->setWindowTitle("qq 2022");
    QList<QString> nameList;
    nameList<<"泼猴"<<"哪吒"<<"菩萨"<<"玉帝老2"<<"如来老6"<<"师傅"<<"偷吃人参果"<<"沙僧"<<"小白";
    QStringList iconNameList; //图标资源列表
    iconNameList << "1"<< "2" <<"3" <<"4"<< "5"<<"6"<<"7"<<"8"<<"9";
    QVector< QToolButton *> vector;
    for(int i=0;i<9;i++)
    {
        QToolButton *btn=new QToolButton(this);
        //加载图标
        btn->setIcon(QPixmap(QString(":/imagine/%1.jpg").arg(iconName
  • 2
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值