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