0

我正在尝试运行两个线程。一个是非 GUI 线程,另一个是 GUI 线程。现在,当我尝试使用命令将图像放入 QLabel 时,
imageLabel->setPixmap(QPixmap::fromImage(image));
我收到一个错误:QPixmap: 在 GUI 线程之外使用像素图是不安全的

所以,要处理上面提到的问题。我已经QImage *image;在我的头文件中声明了我的图像从 msg 到 *image 使用image = new QImage(&(msg->data[0]), msg->width, msg->height, QImage::Format_RGB888);然后我想通过这个指针在QLabel中设置我的图像。但是我不明白,现在应该使用什么格式的setPixmap。通常的代码 imageLabel->setPixmap(QPixmap::fromImage(image));现在不能像QImage *image类型指针一样工作。

所以,基本上我正在尝试执行以下操作:-

QImage *image; //in header file
QLabel *imageLabel: //in header file

image = new QImage(&(msg->data[0]), msg->width, msg->height, QImage::Format_RGB888);
imageLabel->setPixmap(QPixmap::fromImage(???????));
4

1 回答 1

1

您需要使用*运算符转换QImage*QImage&

imageLabel->setPixmap(QPixmap::fromImage(*image));

但是,如果您在错误消息中得到“GUI 线程之外”,则说明您正在尝试在另一个线程中设置标签的像素图。这是不可能的。除了 QPixmap 问题,也不允许在 GUI 线程之外使用 GUI 对象。

于 2013-06-07T18:57:07.803 回答