2 maplblue maplblue 于 2017.09.18 20:00 提问

QT+opengl加载模型切换线程后的显示问题 20C

在QT的GUI线程里加载模型后可以正常显示,在线程里打开的模型却不能在ui里显示,GUI线程里点击一个按钮后开启一个线程进行模型读入,在这个线程里读完模型数据后通过信号返回通知GUI线程模型读入完毕然后加载。请问下有没有谁知道怎么解决这个问题?

1个回答

dl0246
dl0246   2017.09.18 21:32

每做过QT,但是估计和其他的GUI也差不多。都不允许除主线程外线程修改GUI的窗体内容。如果实在不行那么可以考虑类似android的广播方式。进行线程通信在主线程中修改。别忘了给分哦。

dl0246
dl0246 回复maplblue: 不复杂,你只要找到可以线程间通信的模式就行,看看有没有类似messagehand之类的方式。QT我没玩过。大部分GUI都不让主线程之外线程修改gui窗体的
10 个月之前 回复
maplblue
maplblue 没做过Android,不知道广播方式在QT里如何实现啊。这又复杂了啊
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Qt环境下利用OpenGL显示三维模型
最近在做一个利用Qt开发的小程序,其中一项功能
Qt版OpenGL读取3DS模型
OpenGL读取3DS模型(Qt版) 作者:民警小刘   发布:2010-05-24 17:11   分类:前尘旧梦   阅读:1882 views   6条评论     OpenGL一个重要应用就是能够读取外部的3D模型文件,比如OBJ,MD2,MD3,3DS等。在我之前的日志里已经写过一篇关于OpenGL读取Obj格式的类,详情可以看“Qt下学习OpenGL之OBJ模型”。而这次我
【Qt OpenGL教程】25:变形和从文件中加载3D物体
这次教程中,我们将学会如何从文件中加载3D模型,并且平滑的从一个模型变形为另一个模型。在这一课里,我们将介绍如何实现模型的变形过程,这将会是效果很棒的一课!
OpenGL中的线程问题
用OpenGL做交互的时候,总需要处理点击事件吧。结果今天在处理点击事件的时候,遇到一个问题。当点击事件触发openGL的函数时返回的handle都是0。原以为资源没有释放,但是改变代码结构之后发现不是这个问题。仔细看log后发现了一句话: call to OpenGL ES API with no current context (logged once per thread) 上网查查原因
QT5.2利用OpenGL加载3ds模型
做个项目要求加载3DS模型,本来打算用QT3D的,搞了几天也没有在windows下安装成功,所以只能利用openGL 函数加载了,这个例子在QT5.2.1、vs2010环境下,利用OpenGL函数加载3ds模型,我是在vs2010环境中开发这个工程的,在网上找的两个库文件,又在QT自带的例子中拷贝了几个文件并进行了修改,组成了这个工程,测试成功
opengl读取并显示obj模型 源码
本程序在qt下,使用opengl读取并处理obj模型,包括两种:包含纹理的obj模型以及使用颜色处理的obj模型。 注意:由于是qt的源码文件,涉及到资源路径问题,请将源码放在桌面上,例如:C:/..../桌面/QT
opengl加载并渲染obj模型文件(含纹理)
1. 环境win7 + qt5.3.1 WinGW 32bit 2. 使用glm 3. 使用孙启功的方法 4. 网上下载的obj模型文件 5. 我仅仅是用别人的方法和文件进行了简单的实践 6. 因为工作需要,搜索一番不容易找到有用的东西,所以在此留个备份
一个用opengl读取obj模型的代码(2-1)
这是一个在Qt下使用opengl读取obj模型的.h和.cpp文件,是我之前写的一个程序的改进版,可以读取多纹理obj模型,同时对obj格式的支持变得更加完美。(第二个文件链接:http://download.csdn.net/detail/mahabharata_/9847993)
OpenGL环境下模型文件的加载(3DS\OBJ)
opengl环境下3D模型加载的例子,
Qt实现读取显示obj文件——多线程加载纹理
在之前的程序中,已经实现了基本的加载,但是大家知道纹理的加载实在太慢了,整个界面都是卡死的状态,所以得想办法实现多线程加载纹理;我的想法是一个线程先将没有纹理的图形读取出来,另一个线程读取纹理,读取出来以后再重绘实现多线程绑定纹理功能~由于OpenGL中不支持直接多线程的操作~所以需要曲线救国~~在博客园里找到了一位兄弟的博客OpenGL多线程创建纹理,经过他的启发,实现了在Qt中的多线程加载纹理,