您的位置:首页 > 房产 > 建筑 > 南宁商城网站建设_中国专利申请网官网_关键词优化的技巧_如何在百度发布广告

南宁商城网站建设_中国专利申请网官网_关键词优化的技巧_如何在百度发布广告

2025/4/19 22:12:05 来源:https://blog.csdn.net/2403_87001562/article/details/144275326  浏览:    关键词:南宁商城网站建设_中国专利申请网官网_关键词优化的技巧_如何在百度发布广告
南宁商城网站建设_中国专利申请网官网_关键词优化的技巧_如何在百度发布广告

 Mythread.h

#ifndef MYTHREAD_H
#define MYTHREAD_H#include <QThread>class myThread : public QThread
{Q_OBJECT
public:myThread(QObject* parent=nullptr);//重定义构造函数
protected:virtual void run() override;//run函数重写
signals:void readSig();//读文件信号
};#endif // MYTHREAD_H

  Mythread.cpp

#include "mythread.h"myThread::myThread(QObject* parent):QThread(parent)//调用基类构造函数进行初始化
{}void myThread::run()
{while(1){emit readSig();//持续发送信号QThread::msleep(10);}
}

 Widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QFileDialog>
#include "mythread.h"
#include <QDebug>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:void on_pushButton_clicked();//按钮槽函数private:Ui::Widget *ui;QFile* fd;//文件IOQByteArray btarr;qint64 maxsize=1024;//一次读取的字节数myThread* t;//线程qint64 size=0;//判断读取结束的变量
signals:void trigger();//读取触发信号
public slots:void readSlot();//读取进度槽函数void startSlot();//读取开始槽函数
};
#endif // WIDGET_H

 Widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);t = new myThread(this);//定义线程QString qss = "QSlider{border:2px solid;}""QSlider::sub-page:horizontal { background-color: green; }""QSlider::groove:horizontal { background-color: gray; }";ui->horizontalSlider->setStyleSheet(qss);//设置进度条样式QObject::connect(this,&Widget::trigger,this,&Widget::startSlot);//链接触发读取信号(触发t->start())QObject::connect(t,&myThread::readSig,this,&Widget::readSlot);//链接线程读取信号和Widget槽函数
}Widget::~Widget()
{t->terminate();delete ui;
}void Widget::on_pushButton_clicked()
{//点击按钮就打开文件对话框QString fileName =QFileDialog::getOpenFileName(this,"打开文件","D:/pic","Text Files (*.*);;All Files (*)");if(fileName.isEmpty()){return;}else{emit trigger();//触发下载信号fd = new QFile(fileName);//QFile设置文件名fd->open(QIODevice::ReadOnly);//QFile打开文件ui->horizontalSlider->setRange(0,fd->size());//将进度条的范围设置为文件的大小}
}void Widget::startSlot()
{t->start();//线程开始并向widget的readSlot槽中持续发送读数据信号,mythread类中run函数完成
}void Widget::readSlot()
{btarr=fd->read(maxsize);//一次读取maxsize字节(读取速度)size+=maxsize;ui->horizontalSlider->setValue(size);//读取多少进度条增长多少if(size>=fd->size()){qDebug() << "读取完毕";fd->close();//关闭文件指针size=0;t->terminate();//关闭线程}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com