我有一个test类,display是我的槽函数,在槽函数中用pthread开启线程,我已经用最简单的方法测试qt用pthread显示图片,可就是没有效果,,当点击按键时运行槽函数,,执行完了就是不显示图片,,,
ui.dis_label->setPixmap(QPixmap("E:\\triangle.jpg"));,这句话不放进pthread线程里,,就完全没有问题,,,不知道错在哪里了,,麻烦各位帮忙看一下,,,
我是为了一个视频显示使用pthread的,,我先把图片测试好后再做视频,,
void test::display()
{
pthread_t id;
void *arg;
ret = pthread_create(&id,NULL,dis_play,this);
if (ret != 0)
{
exit(1);
}
}
void *test::dis_play(void *arg)
{
test *pDlg = (test*)arg;
pDlg->run();
return 0;
}
void test::run()
{
//qt 测试图片在主对话框中显示
ui.dis_label->setPixmap(QPixmap("E:\\triangle.jpg"));//直接显示
}
------解决思路----------------------
对的,文件操作,图片读取,图片处理,你都可以在次线程中进行。但是要将它显示出来,你需要先将该图片以线程安全的方式传递给主线程,而后主线程负责显示。
题外,QImage可以在次线程中使用,但是QPixmap不能在次线程中使用。