Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt UIThreadWidget_C++_Multithreading_Qt_Thread Safety - Fatal编程技术网

C++ Qt UIThreadWidget

C++ Qt UIThreadWidget,c++,multithreading,qt,thread-safety,C++,Multithreading,Qt,Thread Safety,我有密码: void ChildThread::run() { pUIThreadWidget->fun(); } void UIThreadWidget::fun() { emit Signal(); } void UIThreadWidget::Slot() { //operations about UI } UIThreadWidget::UIThreadWidget() { connect(this, SIGNAL(void), this, SLOT(void

我有密码:

void ChildThread::run()
{
  pUIThreadWidget->fun();
}

void UIThreadWidget::fun()
{
  emit Signal();
}

void UIThreadWidget::Slot()
{
  //operations about UI
}

UIThreadWidget::UIThreadWidget()
{
  connect(this, SIGNAL(void), this, SLOT(void));
}
pUIThreadWidget
是指向
UIThreadWidget
的指针


我收到一条警告“QPixmap:在GUI线程之外使用Pixmap是不安全的”,但没有错误,我的程序也没有崩溃。我的问题是,这段代码是线程安全的吗?

QPixmap依赖于显示,是为在屏幕上显示图像而设计和优化的

它访问底层图形系统。大多数图形系统都不是线程安全的。因此,我们发出了警告


尝试使用QImage

QPixmap是否依赖于显示?它是为在屏幕上显示图像而设计和优化的

它访问底层图形系统。大多数图形系统都不是线程安全的。因此,我们发出了警告


尝试使用QImage

不,那些警告告诉你它不安全。。。它们没有任何意义。这个代码是我同事创建的。我告诉过他你所说的。但是,因为一些小错误或崩溃,他不相信我。不,那些警告告诉你它不安全。。。它们没有任何意义。此代码是我的同事创建的。我告诉了他你所说的。但是,由于一些小错误或崩溃,他不相信我。这是正确的解决方案,你可以在工作线程中使用
QImage
,然后将其传递回GUI线程,并将其转换为
QPixmap
。尽管这不是我想要的,但您的建议对我的未来非常重要。谢谢!这是正确的解决方案,您可以在工作线程中使用
QImage
,然后将其传递回GUI线程并将其转换为
QPixmap
。尽管这不是我想要的,但您的建议对我的未来非常重要。谢谢!