基于Qt的QQ局域网聊天
来源:互联网 发布:安徽之达大数据研究院 编辑:程序博客网 时间:2024/05/16 10:24
近几日闲来无事,便想做个东西玩玩,敲敲代码,取取经,玩玩Qt,做点小Demo。参考多方资料,结合了众多网友的技术,做了一个基于Qt的QQ局域网聊天软件。
源码奉上:点击下载源码
基本功能:
- 文件传输
- 自定义菜单按钮
- 更换背景皮肤
- 支持Enter键发送消息
- 文本区域滚动条自定义样式
- 聊天窗口带阴影
- 能更改字体、字体大小、粗体、斜体、下划线及字体颜色
- 能保存聊天记录,清空聊天记录
参考书籍《Qt及Qt Quick开发实战精解》
1.聊天界面
2.自定义菜单按钮
添加一个menubutton.h头文件,和一个menupushbutton.cpp源文件,把一个PushButton按钮提升为menubutton按钮即可。
- menubutton.h
class QMenu;class MenuButton : public QPushButton //继承QPushButton类{ Q_OBJECTpublic: explicit MenuButton(QWidget *parent = 0); QMenu *getmenu();private slots: void PushMenu();private: QMenu *menu;};
- menupushbutton.cpp
#include "menubutton.h"#include <QMenu>MenuButton::MenuButton(QWidget *parent): QPushButton(parent){ menu = new QMenu(this); connect(this,SIGNAL(clicked()),this,SLOT(PushMenu()));}QMenu *MenuButton::getmenu(){ return menu;}
/* 显示菜单 */ QMenu * menu = ui->menuButton->getmenu(); b1 = new QAction(QIcon(":/images/menu.png"), tr("&星球皮肤"), this);
3.更换皮肤
menu->addAction(b1);connect(b1,SIGNAL(triggered(bool)),this,SLOT(bg1()));
void Widget::bg1(){ ui->stackedWidget->setStyleSheet("QStackedWidget {background-image: url(:/images/background1.jpg);}");}
4.文件传输
5.滚动条样式
滚动条样式用QSS即可实现其效果:
ui->messageBrowser->verticalScrollBar()->setStyleSheet( "QScrollBar:vertical{width:8px;background:rgba(0,0,0,0%);margin:0px,0px,0px,0px;padding-top:9px;padding-bottom:9px;}"//留9px给上下箭头 "QScrollBar::handle:vertical{width:8px;background:rgba(0,0,0,25%);border-radius:4px;min-height:20;}"//上下设置为椭圆 "QScrollBar::handle:vertical:hover{width:8px;background:rgba(0,0,0,50%);border-radius:4px;min-height:20;}"//鼠标悬浮颜色变深 "QScrollBar::add-line:vertical{height:9px;width:8px;border-image:url(:/images/bottom.png);subcontrol-position:bottom;}"//下箭头 "QScrollBar::sub-line:vertical{height:9px;width:8px;border-image:url(:/images/top.png);subcontrol-position:top;}"//上箭头 "QScrollBar::add-line:vertical:hover{height:7px;width:6px;border-image:url(:/images/bottom.png);border:1px;subcontrol-position:bottom;}"//鼠标悬浮下箭头 "QScrollBar::sub-line:vertical:hover{height:7px;width:6px;border-image:url(:/images/top.png);border:1px;subcontrol-position:top;}"//鼠标悬浮上箭头 "QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical{background:rgba(0,0,0,10%);border-radius:4px;}");//滚动时部分
6.更改聊天字体、颜色等
还有阴影边框,鼠标拖动窗口等更多功能,这里便不一一介绍,源代码已上传,欢迎一起探讨。
源码奉上:点击下载源码
1 0
- 基于Qt的QQ局域网聊天
- 基于Qt的局域网聊天软件
- 基于Qt的P2P局域网聊天及文件传送软件设计
- 基于Qt的类QQ气泡聊天的界面开发
- 基于Qt的类QQ气泡聊天的界面开发
- 基于局域网的聊天系统
- 简易局域网聊天QQ
- Qt编写的局域网聊天程序
- 基于C++的局域网聊天系统客户
- 基于UDP的局域网聊天实现
- 基于局域网的聊天系统-文档
- Android:基于局域网的聊天系统
- 基于linux下的局域网聊天
- Qt 局域网聊天
- Qt局域网聊天软件
- Qt局域网聊天软件
- 基于Qt的类QQ气泡聊天的界面开发(二)
- 基于Qt的类QQ气泡聊天的界面开发(三)
- 耶~~
- erlang 排序算法
- 2016暑期集训1A 组合数
- 各种排序实现及比较(Java)
- C#委托深入
- 基于Qt的QQ局域网聊天
- 关于打开酷狗就无法进行android程序调试的问题
- Android--Toast的简单封装
- HDU 5779 Tower Defence(dp+组合数)
- Effective C++ Item 08-别让异常逃离析构函数
- 实现启动一个activity但不显示其界面
- C ---边走边学 (知识点)
- mybatis 常见问题 FAQ
- 在CentOS 6.6 x86_64上安装SystemTap/Perf+FlameGraph玩转火焰图实录