spark-qt-research/Components/MultiplethreadDownload/widget.h
2021-03-21 15:37:39 +08:00

39 lines
957 B
C++

#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QNetworkAccessManager>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
protected:
void showError(const QString& msg);
qint64 getFileSize(const QString& url);
void singleDownload(const QString& url, const QString& filename);
void multiDownloadWithQtConcurrent(const QString& url, qint64 fileSize, const QString& filename, int threadCount);
void multiDownloadWithQThread(const QString& url, qint64 fileSize, const QString& filename, int threadCount);
private slots:
void on_downloadBtn_clicked();
void on_brwoserPathBtn_clicked();
void download_progress_change(qint64 bytesReceived, qint64 bytesTotal);
private:
QNetworkAccessManager *requestManager;
const int maxThreadNum = 8;
Ui::Widget *ui;
};
#endif // WIDGET_H