Thanks Robert. It is working fine...

On the left mouse press I am showing a message using QMessagBox. But on the
middle mouse press was having pan and right mouse press was having zoom in
zoom out. How can I retain those functionalities. With this these
functionalities are gone.

void CSGraphicsView::mousePressEvent(QMouseEvent *e)
{
if(e->button()==Qt::LeftButton)
{
QMessageBox msg;
msg.setText("Mouse pressed");
msg.exec();
}
}


On Wed, May 8, 2013 at 3:59 PM, Robert Milharcic <
robert.milhar...@ib-caddy.si> wrote:

> On 8.5.2013 7:04, Sujan Dasmahapatra wrote:
>
>> I am trying to implement a mouse press event with QT and OSG but unable
>> to do it. Pls help.
>>
>> Below is my ViewerWidget class which is derived from QWidget and
>> osg::CompositeViewer......In the constructor I got gView which is a
>> osg::GLWidget, I am trying override mousePressEvent but when I click
>> message not coming. What I am doing wrong pls help..
>>
>> [snip]
>>
>>
>> osg::Camera* ViewerWidget::createCamera( int x, int y, int w, int h,
>> const std::string& name, bool windowDecoration )
>>     {
>>         osg::DisplaySettings* ds = osg::DisplaySettings::**
>> instance().get();
>> osg::ref_ptr<osg::**GraphicsContext::Traits> traits = new
>> osg::GraphicsContext::Traits;
>>         traits->windowName = name;
>>         traits->windowDecoration = windowDecoration;
>>         traits->x = x;
>>         traits->y = y;
>>         traits->width = w;
>>         traits->height = h;
>>         traits->doubleBuffer = true;
>>         traits->alpha = ds->getMinimumNumAlphaBits();
>>         traits->stencil = ds->getMinimumNumStencilBits()**;
>>         traits->sampleBuffers = ds->getMultiSamples();
>>         traits->samples = ds->getNumMultiSamples();
>>         osg::ref_ptr<osg::Camera> camera = new osg::Camera;
>>         camera->setGraphicsContext( new 
>> osgQt::GraphicsWindowQt(**traits.get())
>> );
>>         camera->setClearColor( osg::Vec4(0.2, 0.2, 0.6, 1.0) );
>>         camera->setViewport( new osg::Viewport(0, 0, traits->width,
>> traits->height) );
>>         camera->**setProjectionMatrixAsPerspecti**ve(
>>             30.0f, static_cast<double>(traits->**
>> width)/static_cast<double>(**traits->height), 1.0f, 10000.0f );
>>         return camera.release();
>>  }
>>
>>  I don't know why this code didn't crash, I think it should. Anyway, you
> should create an instance of the CSGraphicsView somewhere within
> createCamera:
>
> CSGraphicsView* gView = new CSGraphicsView;
> gView->setGeometry(x, y, w, h);
> traits->inheritedWindowData = new osgQt::GraphicsWindowQt::**WindowData(
> gView );
>
> ...
> or you can pass an instance of the CSGraphicsView to the
> osgQt::GraphicsWindowQt constructor.
>
>
> Robert Milharcic
> ______________________________**_________________
> osg-users mailing list
> osg-users@lists.**openscenegraph.org <osg-users@lists.openscenegraph.org>
> http://lists.openscenegraph.**org/listinfo.cgi/osg-users-**
> openscenegraph.org<http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org>
>



-- 
Thanks & Regards
Sujan
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to