在查閱了官方的osgViewerQT後,決定寫壹個子類,同時繼承osgViewer::Viewer和QGLWidget,用壹個Widget來顯示osg的單Viewer的場景。
class OsgQtWidget : public QGLWidget, public osgViewer::Viewer
{
Q_OBJECT
public:
OsgQtWidget(QWidget *parent = 0, const QGLWidget * shareWidget = 0, Qt::WFlags flags = 0);
OsgQtWidget(osgViewer::ViewerBase::ThreadingModel threadingModel = osgViewer::Viewer::SingleThreaded);
~OsgQtWidget();
void setScene();
osg::Camera* createCamera( int x, int y, int w, int h, const std::string& name="", bool windowDecoration=false );
virtual void paintGL();
private:
protected:
QTimer timer;
};