资源简介
在里下的前辈的代码,只是是基于QT4的,在目前大多数新手都从QT5开始的情况下,对其中一些代码稍作修改。非常好的一个工程,不想各位因为工程配置兼容的问题不能收益。方便大家共同学习。
代码片段和文件信息
#include “chat.h“
#include “ui_chat.h“
#include “QMessageBox“
#include “QFileDialog“
#include “QScrollBar“
#include “QColorDialog“
//chat::chat():ui(new Ui::chat)
//{
// is_opened = false;
//}
chat::chat(QString pasvusername QString pasvuserip) : ui(new Ui::chat)
{
ui->setupUi(this);
ui->textEdit->setFocusPolicy(Qt::StrongFocus);
ui->textBrowser->setFocusPolicy(Qt::NoFocus);
ui->textEdit->setFocus();
ui->textEdit->installEventFilter(this);
a = 0;
is_opened = false;
// this->is_opened = false;
xpasvusername = pasvusername;
xpasvuserip = pasvuserip;
ui->label->setText(tr(“与%1聊天中 对方IP:%2“).arg(xpasvusername).arg(pasvuserip));
//UDP部分
xchat = new QUdpSocket(this);
xport = 45456;
// xchat->bind(xport QUdpSocket::ShareAddress | QUdpSocket::ReuseAddressHint);
xchat->bind(QHostAddress(getIP()) xport );
connect(xchat SIGNAL(readyRead()) this SLOT(processPendingDatagrams()));
//TCP部分
server = new TcpServer(this);
connect(serverSIGNAL(sendFileName(QString))thisSLOT(sentFileName(QString)));
connect(ui->textEditSIGNAL(currentCharFormatChanged(QTextCharFormat))thisSLOT(currentFormatChanged(const QTextCharFormat)));
}
chat::~chat()
{
is_opened = false;
delete ui;
}
bool chat::eventFilter(Qobject *target QEvent *event)
{
if(target == ui->textEdit)
{
if(event->type() == QEvent::KeyPress)//按下键盘某键
{
QKeyEvent *k = static_cast(event);
if(k->key() == Qt::Key_Return)//回车键
{
on_send_clicked();
return true;
}
}
}
return QWidget::eventFilter(targetevent);
}
//处理用户离开
void chat::participantLeft(QString userNameQString localHostNameQString time)
{
ui->textBrowser->setTextColor(Qt::gray);
ui->textBrowser->setCurrentFont(QFont(“Times New Roman“10));
ui->textBrowser->append(tr(“%1 于 %2 离开!“).arg(userName).arg(time));
}
QString chat::getUserName() //获取用户名
{
QStringList envVariables;
envVariables << “USERNAME.*“ << “USER.*“ << “USERDOMAIN.*“
<< “HOSTNAME.*“ << “DOMAINNAME.*“;
QStringList environment = QProcess::systemEnvironment();
foreach (QString string envVariables)
{
int index = environment.indexOf(QRegExp(string));
if (index != -1)
{
QStringList stringList = environment.at(index).split(‘=‘);
if (stringList.size() == 2)
{
return stringList.at(1);
break;
}
}
}
return false;
}
QString chat::getIP() //获取ip地址
{
QList list = QNetworkInterface::allAddresses();
foreach (QHostAddress address list)
{
if(address.protocol() == QAbstractSocket::IPv4Protocol) //我们使用IPv4地址
return address.toString();
}
return 0;
}
void
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 12315 2014-03-13 21:38 chat2\chat.cpp
文件 1906 2014-03-13 21:03 chat2\chat.h
文件 638 2014-03-13 21:20 chat2\chat.pro
文件 17997 2014-03-13 21:56 chat2\chat.pro.user
..A..H. 17408 2012-07-03 22:54 chat2\chat.suo
文件 13219 2010-11-05 14:47 chat2\chat.ui
文件 575 2012-06-30 23:45 chat2\chat.vcxproj.user
文件 161862 2010-11-02 21:48 chat2\ico\myicon.ico
文件 46 2014-03-13 21:55 chat2\icon.rc
文件 0 2010-11-02 21:48 chat2\icon.txt
文件 10861 2010-11-02 21:48 chat2\image\20091201_0c5e3cb96bf053f6f8f43xlWxvBTLEnr.png
文件 12548 2010-11-02 21:48 chat2\image\20091201_2a0f6976569659175fd3PEFlPFnrDS1R.png
文件 9497 2010-11-02 21:48 chat2\image\20091201_b321df1d9e60373380a0IQzepnVIU3HS.png
文件 8608 2010-11-02 21:48 chat2\image\20091201_e59eb6d747cef0b2bc89nKJwRb2QIxXh.png
文件 19201 2010-11-02 21:48 chat2\image\Bin (empty).png
文件 16155 2010-11-02 21:48 chat2\image\E-Mail.png
文件 2168 2010-11-02 21:48 chat2\image\fileopen.png
文件 3200 2010-11-02 21:48 chat2\image\Files.png
文件 9576 2010-11-02 21:48 chat2\image\Floppy.png
文件 22074 2010-11-02 21:48 chat2\image\MSN-Messenger.png
文件 1928 2010-11-02 21:48 chat2\image\textbold.png
文件 4226 2010-11-02 21:48 chat2\image\textcolor.png
文件 1164 2010-11-02 21:48 chat2\image\textitalic.png
文件 1644 2010-11-02 21:48 chat2\image\textunder.png
文件 8338 2010-11-02 21:48 chat2\image\User.png
文件 234 2014-03-13 21:54 chat2\main.cpp
文件 371 2014-03-13 21:43 chat2\resource.qrc
文件 3657 2014-03-13 21:02 chat2\tcpclient.cpp
文件 1058 2014-03-13 21:20 chat2\tcpclient.h
文件 1872 2010-11-02 21:48 chat2\tcpclient.ui
............此处省略12个文件信息
- 上一篇:PC 串口调试软件
- 下一篇:编译原理课程设计:词法语法编译器(报告 源码)
相关资源
- qt-电子点菜系统
- C 餐厅叫号系统(QT平)
- QT 实现文件下载
- qt图像处理
- QT,JPEG解码源代码(已完成)
- Qt 播放音频文件
- Qt 读取16进制的data文件
- MQTT+串口(usart)透传
- 易语言QQTEA算法源码
- VC工程转Qt工程文件的工具
- MQTT推送Demo
- 基于Linux、QT的视频监控系统的设计与
- Qt 百度地图 定位
- QT酷炫界面开发指南《QmlBook》
- Ubuntu下操作Excel,qt代码
- Qt图片浏览器 --基于Qt的Graphics View f
- qtnribbon2破解
- Qt软件开发 完整项目代码
- MQTT_3.1protocol_Specific中文版
- 在QT中使用RTP进行视频的采集和传输
- Mini6410 Qt4和Qtopia编程开发指南
- Qt实现Code39条形码
- qt_ffmpeg_mp4_export_and_import.zip
- QT5.5入门与项目实战
- Huffman Compress 霍夫曼编码 压缩 解压缩
- 基于QT的黑白棋游戏设计和实现
- Qt写的连连看小游戏
- 嵌入式局域网聊天系统客户端
- QTranslate_6.7.2.7z
- Qt基于FFmpeg播放本地 H.264H264文件
评论
共有 条评论