forget to mention that Qt version is 4.7.4

On Tue, Jun 26, 2012 at 2:44 PM, GeeKer Wang <[email protected]> wrote:

> Hi, all
>
> There is a problem using osgQt in linux. My OS is Fedora 14, and
> OpenSceneGraph version is 3.0.1.
>
> Static method QFileDialog::getOpenFileName(.) just doesn't work in osgQt.
> It just show a dialog (sometimes blank dialog) without
> response to the mouse click.
>
> However, non-static usage of QFileDialog works fine, and so does it in
> Windows.
> And I tried different thread models, none of which works.
>
> There is a demo to reproduce the problem, which is based on
> osgviewerQt.cpp.
>
> ===================== test_osgqt.h ===================
> class DialogTest : public QObject {
>  Q_OBJECT
> public slots:
> void showDialog() {
>  QFileDialog::getOpenFileName(NULL, ".");
> }
> };
>
> ===================== test_osgqt.cpp ================
>
> class ViewerWidget : public QWidget, public osgViewer::CompositeViewer {
>      //same implementation as the osgviewerQt.cpp example
> };
>
>
> #include <QtGui/QMainWindow>
> #include <QtGui/QToolBar>
> #include <QtGui/QAction>
> #include <QtGui/QFileDialog>
>
> #include "test_osgqt.h"
> int main( int argc, char** argv )
> {
>     osg::ArgumentParser arguments(&argc, argv);
>
>     osgViewer::ViewerBase::ThreadingModel threadingModel =
> osgViewer::ViewerBase::CullDrawThreadPerContext;
>     while (arguments.read("--SingleThreaded")) threadingModel =
> osgViewer::ViewerBase::SingleThreaded;
>     while (arguments.read("--CullDrawThreadPerContext")) threadingModel =
> osgViewer::ViewerBase::CullDrawThreadPerContext;
>     while (arguments.read("--DrawThreadPerContext")) threadingModel =
> osgViewer::ViewerBase::DrawThreadPerContext;
>     while (arguments.read("--CullThreadPerCameraDrawThreadPerContext"))
> threadingModel =
> osgViewer::ViewerBase::CullThreadPerCameraDrawThreadPerContext;
>
>     QApplication app(argc, argv);
>     ViewerWidget* viewWidget = new ViewerWidget(threadingModel);
>     viewWidget->setGeometry( 100, 100, 800, 600 );
>
> QMainWindow window;
>  window.setGeometry(20,20,800,800);
> window.setCentralWidget(viewWidget);
>
>  QFileDialog* dialog = new QFileDialog;
> QToolBar* toolbar = new QToolBar();
>  window.addToolBar(toolbar);
> QAction* open = new QAction("&Open", NULL);
>  toolbar->addAction(open);
>
> DialogTest t;
>  app.connect(open, SIGNAL(triggered()), dialog, SLOT(exec()));
> app.connect(open, SIGNAL(triggered()), &t, SLOT(showDialog()));
>
>     window.show();
>     return app.exec();
> }
>
>
> --
> Bob
>



-- 
Bob
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to