【发布时间】:2011-01-18 14:32:58
【问题描述】:
我正在尝试在 Qt 中显示作为来自另一个函数的数据的图像。
该函数将图像的行存储为无符号字符**
我在某处读到,我可以以某种方式将其存储为 QByteArray,然后创建一个 QPixMap,然后设置标签的 QPixMap 以显示它,但我运气不佳。
这就是我所拥有的:
unsigned char* fullCharArray = new unsigned char[imheight * imwidth];
for (int i = 0 ; i < imheight ; i++)
for (int j = 0 ; j < imwidth ; j++)
fullCharArray[i*j+j] = imageData[i ][j];
QPixmap *p = new QPixmap(reinterpret_cast<const char *>(fullCharArray));
ui->viewLabel->setPixMap(p);
但这似乎给了我一个错误,而且无论如何可能是错误的。当我尝试调用 setPixMap(p[]) 时,错误消失了,但图像没有显示在标签中。
imageData 是由我的其他函数填充的二维数组。最好我想为了创建一个新的 QPixMap 我必须将它转换为一维数组,并在那里手动进行索引计算。这就是双 For 循环的作用。
那么有没有更好的方法在 Qt 中显示这些图像数据?
【问题讨论】: