新浪微博
腾讯微博
会员列表
统计排行
基本信息
到访IP统计
管理团队
管理统计
在线会员
会员排行
版块排行
帖子排行
标签排行
帮助
下拉
用户名
电子邮箱
用户名
密 码
记住登录
登录
找回密码
注册
快捷通道
关闭
您还没有登录,快捷通道只有在登录后才能使用。
立即登录
还没有帐号? 赶紧
注册一个
首页
论坛
Qt下载
作品展
群组
个人中心
捐赠、管理与开发
邮件订阅
帖子
文章
日志
用户
版块
群组
帖子
搜索
QTCN开发网
>
Qt基础编程
>
能帮我解释下面代码的某些含义么,我基础很差。。
发帖
回复
返回列表
新帖
7029
阅读
4
回复
[提问]
能帮我解释下面代码的某些含义么,我基础很差。。
[复制链接]
上一主题
下一主题
离线
wter27
UID:74186
注册时间
2009-02-08
最后登录
2012-06-15
在线时间
70小时
发帖
136
搜Ta的帖子
精华
0
金钱
1370
威望
138
贡献值
0
好评度
137
访问TA的空间
加好友
用道具
侠客
关闭
个人中心可以申请新版勋章哦
立即申请
知道了
加关注
发消息
只看楼主
倒序阅读
楼主
发表于: 2011-02-15
问题
已用注释符号标出。。。请解释。。。还有如果想了解QT数据方面的内容有没什么好点的书呢
复制代码
#include"widget.h"
#include"ui_widget.h"
Widget::Widget(QWidget*parent):
QWidget(parent),
ui(newUi::Widget)
{
ui->setupUi(this);
nextBlockSize=0;
bytesWritten=0;
ui->progressBar_main->setMaximum(0);
QFilevfile("version.dat");
if(vfile.open(QIODevice::ReadOnly))
{
QTextStreamstream(&vfile);
version=stream.readLine();
vfile.close();
}
QStringipAdd;
QFilenetfile("net.dat");
if(netfile.open(QIODevice::ReadOnly))
{
QTextStreamstream(&netfile);
ipAdd=stream.readLine();
netfile.close();
}
clientSocket=newQTcpSocket(0);
clientSocket->connectToHost("127.0.0.1",3327);
QObject::connect(clientSocket,SIGNAL(readyRead()),this,SLOT(communicate()));
QObject::connect(clientSocket,SIGNAL(disconnected()),this,SLOT(disconnect()));
}
Widget::~Widget()
{
deleteui;
}
voidWidget::communicate()
{
QDataStreamin(clientSocket);
in.setVersion(QDataStream::Qt_4_0);
//qDebug()<<in;
while(1)
{
intbytes=(int)(clientSocket->bytesAvailable());
bytesWritten+=bytes;
if(ui->progressBar_main->maximum())//maximum()这个函数查不到啊
{
ui->progressBar_main->setValue(bytes);
ui->label_1->setText(QString::number(bytes));
}
if(nextBlockSize==0)
{
if(quint64(bytes)<sizeof(quint64))//quint64这个是什么数据格式呢?是64位的整型?有没相关的文档
{
break;
}
in>>nextBlockSize;
//设置进度条最大值
ui->progressBar_main->setMaximum((int)nextBlockSize);
ui->label_1->setText(QString::number((int)nextBlockSize));
this->show();
}
if(quint64(bytes)<nextBlockSize)
{
break;;
}
//通信协议
quint16 protocol;
in>>protocol;
qDebug()<<"line75/infilewidget.commuicatefunction";
qDebug()<<protocol;
qDebug()<<in;
switch(protocol)
{
case0x0001:
{
in>>version_s;
if(version==version_s)
{
qDebug()<<"thisisthenewestversion.";
qApp->quit();
}
else
{
QByteArrayblock;
QDataStreamout(&block,QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_0);
out<<quint64(0)<<quint16(0x0001);
out.device()->seek(0);//device()-这个函数不是废弃了么?文档上是这样写的啊什么意思呢
out<<quint64(block.size()-sizeof(quint64));
clientSocket->write(block);
}
break;
}
case 0x0002://怎么得出的啊
{
QByteArrayblock1;
QByteArrayblock2;
in>>block1>>block2;//in>>block1是in写入block1,那in>>block1>>block2;是什么意思呢?是不是写入block1后超出的部分写入block2呢?
QFilefile1("MRP.exe");
if(file1.open(QIODevice::WriteOnly)&&block1.length()!=0)
{
file1.write(block1);
file1.close();
}
QFilefile2("common.dll");
if(file2.open(QIODevice::WriteOnly)&&block2.length()!=0)
{
file2.write(block2);
file2.close();
}
QFilewvfile("version.dat");
if(wvfile.open(QIODevice::WriteOnly))
{
wvfile.write(version_s.toUtf8());
wvfile.write("\r\n");
wvfile.close();
}
qDebug()<<"updatesuccessfully.";
QProcess::startDetached("MRP.exe");
qApp->quit();
break;
}
}
nextBlockSize=0;
}
}
voidWidget::disconnect()
{
clientSocket->deleteLater();
QMessageBox::information(this,tr("错误"),tr("网络连接中断!"));
qApp->quit();
};
[ 此帖被wter27在2011-02-15 19:50重新编辑 ]
共
条评分
回复
举报
分享到
淘江湖
新浪
QQ微博
QQ空间
开心
人人
豆瓣
网易微博
百度
鲜果
白社会
飞信
离线
roywillow
UID:97396
注册时间
2010-05-15
最后登录
2021-09-20
在线时间
5071小时
发帖
2897
搜Ta的帖子
精华
5
金钱
29175
威望
2924
贡献值
2
好评度
2916
访问TA的空间
加好友
用道具
精灵王
加关注
发消息
只看该作者
1楼
发表于: 2011-02-15
quint64是64位无符号整数,同样的还有quint32,quint16,quint8
如果你看的是例程,里面用到一些废弃的函数也很正常的,谁知道人家例程是在什么版本写的
in>>block1>>block2意思是先读取出来一个block1(看情况应该是一个QByteArray),接着再读取出来下一个QByteArray到block2,应该是没有什么超出之说,你按照block1、block2的顺序写入,读取自然也会按照这个顺序出来
共
条评分
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
回复
举报
离线
wter27
UID:74186
注册时间
2009-02-08
最后登录
2012-06-15
在线时间
70小时
发帖
136
搜Ta的帖子
精华
0
金钱
1370
威望
138
贡献值
0
好评度
137
访问TA的空间
加好友
用道具
侠客
加关注
发消息
只看该作者
2楼
发表于: 2011-02-15
回 1楼(roywillow) 的帖子
quint64是64位无符号整数,
这个你是怎么知道的呢,我想了解下这些文档应该学习什么。我对数据结构不是很了解。学过的C全忘了
共
条评分
回复
举报
离线
roywillow
UID:97396
注册时间
2010-05-15
最后登录
2021-09-20
在线时间
5071小时
发帖
2897
搜Ta的帖子
精华
5
金钱
29175
威望
2924
贡献值
2
好评度
2916
访问TA的空间
加好友
用道具
精灵王
加关注
发消息
只看该作者
3楼
发表于: 2011-02-15
文档中可以查到很多的
在QtGlobal的文档中
共
条评分
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
回复
举报
离线
jdwx
UID:107742
注册时间
2010-11-12
最后登录
2016-02-01
在线时间
4619小时
发帖
2939
搜Ta的帖子
精华
0
金钱
30465
威望
3015
贡献值
0
好评度
3005
访问TA的空间
加好友
用道具
论坛版主
加关注
发消息
只看该作者
4楼
发表于: 2011-02-15
你自己知道应该怎么办?
共
条评分
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
回复
举报
发帖
回复
返回列表
http://www.qtcn.org/bbs
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问
快速回复
限100 字节
您目前还是游客,请
登录
或
注册
进入高级模式
文字颜色
发 布
回复后跳转到最后一页
上一个
下一个
关闭
补充发布信息
验证码:
发 布
隐藏
快速跳转
站务及资讯
网站公告
新闻资讯
Qt官方发布
网站管理
Qt应用及资源
Qt 作品展
Qt代码秀
Qt应用版
Qt技术讨论区
Qt安装与发布
Qt中文处理
Qt基础编程
Qt QML开发
Qt嵌入式开发
Qt移动平台开发
其它技术开发讨论区
Qt图书专区
《C++ GUI Qt 4编程》(第2版)专栏
《Qt高级编程》专栏
《零基础学Qt4编程》专栏
《Qt设计模式》(第2版) 图书专栏
Python Qt GUI快速编程
Qt项目开发区
天池项目
Qt开放平台开发库
Qt版百度云笔记
机械CAD
Qt文档计划
QTCN网站系统开发
扇贝词典
非活跃项目区
社区中心
帖子回收站(Trash)
招聘、求职、供求、广告等
休闲娱乐
关闭
关闭
选中
1
篇
全选