目前在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保存的节点规则也还没搞清楚。还需要一个复杂的分段模型用来练手,将分段各信息显示在树结构中