[Interest] How to use QOpenGLWidget from Qt Creator

Nicholas Yue yue.nicholas at gmail.com
Mon May 3 21:27:32 CEST 2021


OK. I will look into the plugins approach.

Is dynamically loading UI files to be avoided in Qt development ? What are
the limitations (so I can learn about them) ?

Cheers

On Mon, 3 May 2021 at 12:17, Max Paperno <max-l at wdg.us> wrote:

> I guess since you're loading the UI dynamically, you'll need to either
> go the "plugin" route or subclass QUiLoader.
>
> https://forum.qt.io/topic/68045/can-t-load-custom-widget-using-quiloader
>
> I'm not sure why you're using dynamic UI loading in the first place, or
> how you expect any custom objects in such external UI files to be
> available to the application... or if this is a one-time sort of issue.
> My point being that you may be better off using plugins to being with,
> since dynamically loading UI files has very limited functionality.
>
> Cheers,
> -Max
>
> (Please reply to list, or directly, not both.)
>
>
> On 5/3/2021 2:21 PM, Nicholas Yue wrote:
> > Thanks Max,
> >
> >    I tried the promotion approach and created the corresponding class
> > (which subclass from QOpenGLWidget) but when I ran the code, I can the
> > following message
> >
> > ```
> > "QFormBuilder was unable to create a custom widget of the class
> > 'MyOpenGLWidget'; defaulting to base class 'QOpenGLWidget'."
> > ```
> >
> > The full source is here
> > https://github.com/nyue/QtQuestions/tree/main/Qt5/opengl/mainwindow
> >
> >
> > Cheers
> >
> > On Sun, 2 May 2021 at 23:13, Max Paperno <max-l at wdg.us
> > <mailto:max-l at wdg.us>> wrote:
> >
> >     Hi Nicholas,
> >
> >     What you want to do is create your custom QOpenGLWidget first (it
> could
> >     be the bare minimum to start with, even just a header file with the
> >     class declaration).  Then in Qt Creator/Designer you want to
> "promote"
> >     the placeholder QOpenGLWidget to your custom version.  If you search
> on
> >     "promote widget in Qt Designer" (or similar) you'll find more clues.
> >     Here's a couple links to get you started.
> >
> >
> https://stackoverflow.com/questions/8138711/creating-custom-widget-to-be-promoted-in-qt-designer
> >
> >     https://doc.qt.io/archives/qt-4.8/designer-using-custom-widgets.html
> >     (see "Promoting Widgets" part).
> >
> >     Note that most customization to your widget won't actually show up in
> >     Designer (it will act as a "generic" QOpenGLWidget in Designer). Nor
> >     would any custom properties you create, etc. For that you'd need
> closer
> >     integration by writing a plugin (which you probably don't need to
> >     do).  See:
> >
> >
> https://stackoverflow.com/questions/58714879/my-custom-widget-is-not-shown-in-qt-creator-qt-designer-but-it-is-shown-when-i
> >
> >
> https://stackoverflow.com/questions/23275909/adding-widgets-to-qt-designer
> >
> >
> >     HTH,
> >     -Max
> >
> >
> >     On 5/3/2021 1:12 AM, Nicholas Yue wrote:
> >      > Hi,
> >      >
> >      > I used designer to create a QOpenGLWidget on a MainWindow
> >      >
> >      > I can retrieve the widget via findChild<QOpenGLWidget*>()
> >      >
> >      > My understanding is that to leverage the widget, there are a
> >     couple of
> >      > virtual methods that needs to be overridden e.g. paintGL(),
> >     resizeGL(),
> >      > initializeGL()
> >      >
> >      > However, the widget I retrieve via findChild() will be the base
> >     class
> >      > without the overridden methods.
> >      >
> >      > I must be missing something here.
> >      >
> >      > Where can I read up more on how this can be resolved ?
> >      >
> >      > The OpenGL examples I found did not use Qt Creator to create the
> UI
> >      >
> >      > https://doc.qt.io/qt-5/qtopengl-hellogl2-example.html
> >      >
> >      > Cheers
> >      > --
> >      > Nicholas Yue
> >      > Graphics - Arnold, Alembic, RenderMan, OpenGL, HDF5
> >      > Custom Dev - C++ porting, OSX, Linux, Windows
> >      > http://au.linkedin.com/in/nicholasyue
> >      > https://vimeo.com/channels/naiadtools
> >      >
> >      > _______________________________________________
> >      > Interest mailing list
> >      > Interest at qt-project.org <mailto:Interest at qt-project.org>
> >      > https://lists.qt-project.org/listinfo/interest
> >      >
> >     _______________________________________________
> >     Interest mailing list
> >     Interest at qt-project.org <mailto:Interest at qt-project.org>
> >     https://lists.qt-project.org/listinfo/interest
> >
> >
> >
> > --
> > Nicholas Yue
> > Graphics - Arnold, Alembic, RenderMan, OpenGL, HDF5
> > Custom Dev - C++ porting, OSX, Linux, Windows
> > http://au.linkedin.com/in/nicholasyue
> > https://vimeo.com/channels/naiadtools
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> https://lists.qt-project.org/listinfo/interest
>


-- 
Nicholas Yue
Graphics - Arnold, Alembic, RenderMan, OpenGL, HDF5
Custom Dev - C++ porting, OSX, Linux, Windows
http://au.linkedin.com/in/nicholasyue
https://vimeo.com/channels/naiadtools
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20210503/87b7b2f5/attachment.html>


More information about the Interest mailing list