Вы, вероятно, не может с помощью встроенного в изображение сохранения. Вы можете оценить время сохранения (знать размер изображения, догадываться mb/s) и установить индикатор выполнения и просто использовать таймер для его обновления.
Или у вас может быть индикатор выполнения, который быстро запускается до конца и перезапускается, чтобы показать какую-то активность, но не фактический прогресс.
Редактировать: если вы действительно должны иметь прогресс, вы можете «сохранить» данные изображения в памяти, а затем записать память на диск в блок, обновляя прогресс.
QImage image;
QByteArray bytes;
QBuffer buffer(&bytes);
buffer.open(QIODevice::WriteOnly);
image.save(&buffer, "PNG"); // writes image into buffer in PNG format
Затем записать буфер на диск
Проблема в том, что программа будет работать на самых разных машинах, поэтому я бы предпочел не делать никаких предположений, кроме того, я до сих пор не вижу, как это реализовать. Как я могу обновить что-либо во время выполнения инструкции 'image.save (fichier)'? – Leo
Сигнал таймера/слот все равно будет выполняться во время задачи сохранения. Таймеры - это дешевый и простой способ сделать многозадачность. Вы также можете проверить размер файла изображения в слоте таймера, но в зависимости от ОС он может выделить полный размер в начале сохранения, а затем заполнить его –