Использую связку
QListWidget +
QTextEdit для ведения записей (аля записная книжка).
QListWidget - являет собой список названий страниц (дата, событие и т.п), с подгрузкой редактируемого содержимого в
QTextEdit.
Захотелось разнообразить свои записи средствами HTML - форматирование текста (bold, italic...), и добавление картинок\фоток.
Столкнулся с тем, что при одновременной загрузке более 70+ фотографий с телефона (в виджете скалируется до 256x256) часть из них не загрузилась, отображаясь дефолтной иконкой.
Тем временем в диспетчере задач Windows память процесса подскочила до 1 ГБ+.
//Вариант добавление картинки №1:
txtEdit->append("<a href=\"" + fileNames[i] + "\"><img src=\"" + fileNames[i] + "\" width=\"" + QString::number(ui->spinBox_Width->value()) + "\" height=\"" + QString::number(ui->spinBox_Height->value()) + "\"></a>");
//Вариант добавление картинки №2: (оба варианта забивают память и не отображают все загруженные картинки, если их более 70 шт.)
QString file = fileNames[i];
QUrl Uri ( QString ( "file://%1" ).arg ( file ) );
QImage image = QImageReader ( file ).read();
QTextDocument * textDocument = ptr->txtEdit->document();
textDocument->addResource( QTextDocument::ImageResource, Uri, QVariant ( image ) );
QTextCursor cursor = ptr->txtEdit->textCursor();
QTextImageFormat imageFormat;
imageFormat.setWidth( 256 ); //image.width()
imageFormat.setHeight( 256 ); //image.height()
imageFormat.setName( Uri.toString() );
cursor.insertImage(imageFormat);
Вопрос №1: Средствами
QTextEdit или
QTextBrowser возможно добиться стабильной работы с множеством картинок?
Вопрос №2: При очищении содержимого
QTextEdit память процесса не очищается. Как очищать кэш картинок? Можно было бы ограничится только 30 шт. одновременных картинок в виджете, но в данном случае новые картинки уже не добавляются, отображаясь дефолтной иконкой.