使用ProgressBar读取文件的qt连接
如何将文件写入进度条 我试过这个版本:使用ProgressBar读取文件的qt连接,qt,file,progress-bar,Qt,File,Progress Bar,如何将文件写入进度条 我试过这个版本: QFile wr(my_file); connect(&wr, &QFile::pos , ui->bar, &QProgressBar::setValue); QFile wr(my_file); Qbytearray my_data; connect(&my_data, &Qbytearray::count , ui->bar, &QProgressB
QFile wr(my_file);
connect(&wr, &QFile::pos , ui->bar, &QProgressBar::setValue);
QFile wr(my_file);
Qbytearray my_data;
connect(&my_data, &Qbytearray::count , ui->bar, &QProgressBar::setValue);
这个版本:
QFile wr(my_file);
connect(&wr, &QFile::pos , ui->bar, &QProgressBar::setValue);
QFile wr(my_file);
Qbytearray my_data;
connect(&my_data, &Qbytearray::count , ui->bar, &QProgressBar::setValue);
上述两个版本不起作用
第二个给出了一个错误,指向的类型是不相关的;转换需要重新解释转换、C样式转换或函数样式转换
-插槽需要的参数比信号提供的参数多。
-信号和插槽参数不兼容。
如何将文件读取链接到进度条,以便在内存中查看上载的文件进度
- 我知道我使用的功能不是信号,我要问的是如何生成适当的信号/我应该使用哪种替代方法将适当的信号连接到进度条
我想你可以试试这个:
class MyQFile : public QFile {
Q_OBJECT
public:
MyQFile(const QString& filename)
: QFile(filename)
, bytesSum(0)
{
}
signals:
void progress(int value);
protected:
qint64 readData(char* data, qint64 maxlen)
{
qint64 bytesReaded = QFile::readData(data, maxlen);
bytesSum += bytesReaded;
emit progress((int)(bytesSum / size()) * 100);
return bytesReaded;
}
private:
qint64 bytesSum;
};