最近因项目需要在Qt中嵌入OSG界面,遂尝试了一番:
实验环境:vs2010+Qt4.8.3+OSG3.0.1
osg能够和很多的GUI界面进行融合,其源码包中含的工程代码为我们展示了使用的示例:
其中与Qt有关的有三个:osgQtBrowser、osgQtWidgets和osgviewerQt。
前两者是在osg中嵌入Qt,而第三个是在Qt中嵌入osg,符合需求。
新建Qt工程,并将代码拷贝进去:
#include <QTimer>
#include <QApplication>
#include <QGridLayout>
#include <QWidget>
#include <osgViewer/CompositeViewer>
#include <osgViewer/ViewerEventHandlers>
#include <osgGA/TrackballManipulator>
#include <osgDB/ReadFile>
#include <osgQt/GraphicsWindowQt>
#include <iostream>
class ViewerWidget : public QWidget, public osgViewer::CompositeViewer
{
public:
ViewerWidget(osgViewer::ViewerBase::ThreadingModel threadingModel=osgViewer::CompositeViewer::SingleThreaded) : QWidget