QT
来源:互联网 发布:淘宝账号怎么注销掉 编辑:程序博客网 时间:2024/05/16 13:05
流程图:
#ifndef SENDTASK_H#define SENDTASK_H#include <QThread>class SendTask : public QThread{ Q_OBJECTpublic: SendTask(QObject *parent); ~SendTask(); int beginTask(const char *filename);//开始任务 int getStatus();//获得状态 int getProgress();//获得进度private: void run(); char m_filename[128]; int m_filesize;//文件总大小 int m_bytesread;//读取长度 int m_status;//状态,0未激活,1结束,-1失败};#endif // SENDTASK_H
#include "SendTask.h"#include <string.h>#include <QDebug>#include "Dialog_Error.h"SendTask::SendTask(QObject *parent) : QThread(parent){}SendTask::~SendTask(){}int SendTask::beginTask(const char *filename)//开始任务{ strcpy(m_filename, filename); m_bytesread = 0; m_filesize = 0; m_status = 0; start();//开始任务 return 0;}int SendTask::getStatus(){ return m_status;}int SendTask::getProgress(){ return m_bytesread * 100 / m_filesize;//返回百分比}void SendTask::run(){ FILE *fp = fopen(m_filename, "rb"); if(!fp) { m_status = -1;//执行失败 return ; } fseek(fp, 0, SEEK_END); m_filesize = ftell(fp); fseek(fp, 0, SEEK_SET); char buf[1024]; while(1) { int n = fread(buf, 1, 1024, fp); if(n <= 0) { break;//读取完成 } m_bytesread += n; qDebug() << m_bytesread; QThread::msleep(100); } m_status = 1;//执行成功 fclose(fp);}
阅读全文
0 0
- QT
- QT
- QT
- Qt
- qt
- QT
- QT
- QT
- QT
- qt
- Qt
- QT
- qt
- qt
- Qt
- Qt
- QT
- qt
- JQuery基础(一)样式篇
- leetcode.array--34. Search for a Range
- 【转】MovieTaster-使用Item2Vec做电影
- Python3解决UnicodeDecodeError: 'utf-8' codec can't decode byte..问题 终极解决方案
- 背包问题
- QT
- Qt更改图标
- 数据结构5-最小生成树Prim算法
- 大致计划《2017-10》
- hibernate注解开发相关
- 最小二乘法(least square method)的直观认识
- TCP与UDP的完整区别
- Unity优化场景的一点记录
- 原型模式