我有一个大图像,必须用 image.save(fichier) 保存。我怎么可能显示保存状态的进度条?

这可能是一个微不足道的问题,但我真的不知道如何做到这一点,因为它是一个单行命令......

最佳答案

您可能无法使用内置的图像保存。
您可以估计保存时间(知道图像的大小,猜测 mb/s),然后设置一个进度条并使用计时器来更新它。

或者你可以有一个进度条,它会快速运行到最后并重新启动以显示一些事件而不是实际进度。

编辑:如果你真的必须有一个进度,你可以将图像数据“保存”在内存中,然后将内存写入磁盘,一次更新进度。

 QImage image;
 QByteArray bytes;
 QBuffer buffer(&bytes);
 buffer.open(QIODevice::WriteOnly);
 image.save(&buffer, "PNG"); // writes image into buffer in PNG format

然后将缓冲区写入磁盘

关于c++ - 文件保存期间的进度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11191535/

10-16 09:12