SoQt Class Reference
[Qt]

VSG extension Routines for Open Inventor/Qt compatibility. More...

#include <Inventor/Qt/SoQt.h>

List of all members.

Static Public Member Functions

static SoNONUNICODE QWidget * init (const char *appName, const char *className="Inventor")
static QWidget * init (const SbString &appName, const SbString &className="Inventor")
static SoNONUNICODE QWidget * threadInit (const char *appName, const char *className="Inventor")
static QWidget * threadInit (const SbString &appName, const SbString &className="Inventor")
static void init (QWidget *topLevelWidget)
static void threadInit (QWidget *topLevelWidget)
static void show (QWidget *widget)
static void hide (QWidget *widget)
static void mainLoop ()
static void nextEvent (XtAppContext appContext, XEvent *event)
static SbGlContextHelper::Display getDisplay ()
static SbGlContextHelper::GLContext getAppContext ()
static Boolean dispatchEvent (XEvent *)
static QWidget * getTopLevelWidget ()
static void setWidgetSize (QWidget *widget, const SbVec2s &size)
static SbVec2s getWidgetSize (QWidget *widget)
static SoNONUNICODE void createSimpleErrorDialog (QWidget *widget, char *dialogTitle, char *errorStr1, char *errorStr2=NULL)
static void createSimpleErrorDialog (QWidget *widget, const SbString &sdialogTitle, const SbString &errorStr1, const SbString &errorStr2="")
static void finish ()
static bool isInitialized ()
static int getExtensionEventNumber ()

Detailed Description

VSG extension Routines for Open Inventor/Qt compatibility.

The SoQt class initializes Open Inventor for use with Qt. SoQt::init() must be called in order for Open Inventor to work properly with Qt. SoQt::finish() should be called to clean up static memory allocations.

SoQt::mainLoop() must be called in order for extension device messages to be passed to Open Inventor render areas. The other methods are convenience functions.

Refer to the SoQtComponent reference pages for examples on how this class should be used when using Open Inventor Qt components.

SEE ALSO

SoQtComponent

See related examples:

QtCustomViewer, QtHelloCone, QtMultiViewer, QtReadFile, QtSpaceMouse, QtTreeView


Member Function Documentation

static void SoQt::createSimpleErrorDialog ( QWidget *  widget,
const SbString sdialogTitle,
const SbString errorStr1,
const SbString errorStr2 = "" 
) [static]

Convenience routine which brings a simple Qt error dialog box displaying the given error string(s) and window title.

The OK button, which destroys the dialog, is the only button displayed.

static SoNONUNICODE void SoQt::createSimpleErrorDialog ( QWidget *  widget,
char *  dialogTitle,
char *  errorStr1,
char *  errorStr2 = NULL 
) [static]

Convenience routine which brings a simple Qt error dialog box displaying the given error string(s) and window title.

The OK button, which destroys the dialog, is the only button displayed.

Non Unicode List:
This function should not be used in a Unicode application.
static Boolean SoQt::dispatchEvent ( XEvent  )  [static]

This method is included for portability only.

It processes all the pending events So that code written for Xt can be used also on Qt implementations.

static void SoQt::finish (  )  [static]

Frees Open Inventor's internal static memory allocations.

This avoids false positives from memory leak checking software. We recommend calling this method and it should be the last Open Inventor method called by the application. This method calls SoDB::finish(), SoNodeKit::finish(), and SoInteraction::finish().

Note: Open Inventor objects should be destroyed before you call this method.

For example:

Wrong Open Inventor Ending Safe Open Inventor Endings
 void main() {
   QWidget myW = SoQt::init("");
   SoQtExaminerViewer viewer( myW );
   ....
   ....
   SoQt::mainLoop();
   SoQt::finish();
 }
 void runApp() {
   SoQtExaminerViewer viewer( myW );
   ....
   ....
   SoQt::mainLoop();
 }

 void main () {
   QWidget myW = SoQt::init("");
   runApp();
   SoQt::finish();
 }
 void main () {
   QWidget myW = SoQt::init("");
   SoQtExaminerViewer* viewer
          = new SoQtExaminerViewer( myW );
   ....
   ....
   SoQt::mainLoop();
   delete viewer;
   SoQt::finish();
  }
SoQt doesn't end properly: SoQtExaminerViewer is destroyed after the finish() method has been called. The SoQtExaminerViewer (that uses Open Inventor) is destroyed before calling the finish() method.
static SbGlContextHelper::GLContext SoQt::getAppContext (  )  [static]

This method is included for portability only.

So that code written for Xt can be used also on Qt implementations.

static SbGlContextHelper::Display SoQt::getDisplay (  )  [static]

This method is included for portability only.

static int SoQt::getExtensionEventNumber (  )  [static]

Returns the type number of the Open Inventor extension QCustomEvent.

This number can be set with the environment variable OIV_EXTENSION_EVENT_NUMBER.

static QWidget* SoQt::getTopLevelWidget (  )  [static]

Returns information based on the initial QWidget handle returned by or passed to init.

static SbVec2s SoQt::getWidgetSize ( QWidget *  widget  )  [static]

Convenience routine to get the size of the given widget.

static void SoQt::hide ( QWidget *  widget  )  [static]

Convenience routine to hide the passed widget handle.

This includes any children the widget may have.

static void SoQt::init ( QWidget *  topLevelWidget  )  [static]

This alternate form of init allows the application to initialize Qt.

The passed widget handle should be the top level widget handle returned from the Qt initialization. This method will call SoDB::init(), SoNodeKit::init(), and SoInteraction::init().

static QWidget* SoQt::init ( const SbString appName,
const SbString className = "Inventor" 
) [static]

This is called to initialize Open Inventor and Qt, and bind Open Inventor with Qt message handling so that Open Inventor sensors will work correctly.

This returns the top level shell widget handle. This method calls SoDB::init(), SoNodeKit::init(), and SoInteraction::init(), and creates an initial window.

static SoNONUNICODE QWidget* SoQt::init ( const char *  appName,
const char *  className = "Inventor" 
) [static]

This is called to initialize Open Inventor and Qt, and bind Open Inventor with Qt message handling so that Open Inventor sensors will work correctly.

This returns the top level shell widget handle. This method calls SoDB::init(), SoNodeKit::init(), and SoInteraction::init(), and creates an initial window.

Non Unicode List:
This function should not be used in a Unicode application.
static bool SoQt::isInitialized (  )  [static]

Returns TRUE if SoQt module is currently initialized.

static void SoQt::mainLoop (  )  [static]

This retrieves and dispatches messages (loops forever).

static void SoQt::nextEvent ( XtAppContext  appContext,
XEvent event 
) [static]

This method is included for portability only.

So that code written for Xt can be used also on Qt implementations.

static void SoQt::setWidgetSize ( QWidget *  widget,
const SbVec2s size 
) [static]

Convenience routine to set the size of the given widget.

static void SoQt::show ( QWidget *  widget  )  [static]

Convenience routine to show the passed widget handle.

This includes any children the widget may have.

static void SoQt::threadInit ( QWidget *  topLevelWidget  )  [static]

This method calls SoDB::threadInit() rather than SoDB::init().

Otherwise it is the same as the corresponding SoQt::init() method.

static QWidget* SoQt::threadInit ( const SbString appName,
const SbString className = "Inventor" 
) [static]

This method calls SoDB::threadInit() rather than SoDB::init().

Otherwise it is the same as the corresponding SoQt::init() method.

static SoNONUNICODE QWidget* SoQt::threadInit ( const char *  appName,
const char *  className = "Inventor" 
) [static]

This method calls SoDB::threadInit() rather than SoDB::init().

Otherwise it is the same as the corresponding SoQt::init() method.

Non Unicode List:
This function should not be used in a Unicode application.

The documentation for this class was generated from the following file:

Open Inventor Toolkit reference manual, generated on 12 Feb 2024
Copyright © Thermo Fisher Scientific All rights reserved.
http://www.openinventor.com/