В моем основном классе, который управляет окном, у меня есть эта функция, где pixmapItem
— это QGraphicsPixmapItem*
, определенный в заголовке класса:
void updateDisplay() {
uchar *data = new ...; // array of pixel data
...
QImage image = QImage(data, width, height,
width, QImage::Format_Indexed8);
pixmapItem->setPixmap(QPixmap::fromImage(image));
}
Мой вопрос: как я могу уничтожить data
, когда он больше не нужен? «Больше не нужно» означает, что функция выше или другая функция в моем классе устанавливает растровое изображение на другое изображение.
Я видел, что в QImage есть функции очистки, которые могут помочь, но в документации не совсем понятно, как их использовать и как передавать такие параметры, как указатель данных удаляемого изображения.
QImage
выделять память для пикселей самостоятельно, чтобы вы могли быть уверены, что ее размер и выравнивание правильные, и она принадлежит/автоматически уничтожается экземпляром QImage; после создания QImage вы можете получить указатель на пиксельные данные, используя методbits
. - person Matteo Italia   schedule 05.12.2016