目前在qt中嵌入了osgviewer,并添加了自定义的eventhandle,此事件触发模型的高亮。但是想触发qt窗体中text控件显示模型的信息出现了疑问。事件能直接发出信号供槽接收?事件是单独的类,qt中viewer控件类,text控件类,三者之间的信号槽怎么建立????

 

8月22日:

仍然是使用信号槽机制,当单击模型事件发生时,发送信号sendPickInfo,槽为displayPickInfo。

自定义事件CPickHandler中有成员OsgViewerWidget,此成员为嵌入qt的osgviewer。反过来,OsgViewerWidget对象添加了自定义事件CPickHandler;

在CPickHandler事件中,设计了单击模型事件的方法PickLight,该方法高亮模型,同时由OsgViewerWidget发送信号sendPickInfo

槽由MyOSGQT的displayPickInfo接收,在该槽内,调用了ui的控件,使控件显示传出信息。

connect函数位于ui_myosgqt中。

 

注意槽函数参数只能与信号函数少或相等。

qstring中文乱码的解决方法:在main函数中,添加QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));

暂时实现了点选模型后,传递坐标信息到text控件。但是模型本身的信息还未找到获取方法,因为关于模型的node结构理解的还不是很清楚。明天需要对模型信息进行提取,然后显示到控件中。

 

对于模型节点的类型,geode和group还是无法找到区分的方法,以及复杂模型各种信息的保存位置。nodepath保存的节点规则也还没搞清楚。还需要一个复杂的分段模型用来练手,将分段各信息显示在树结构中

posted on 2017-08-22 00:05  非宁静,无以致远  阅读(813)  评论(0编辑  收藏  举报