UI-Fehler: QOpenGLContext::makeCurrent() wurde nach dem Upgrade auf QT 6 mit einer Nicht-OpenGL-Oberfläche aufgerufenLinux

Linux verstehen
Guest
 UI-Fehler: QOpenGLContext::makeCurrent() wurde nach dem Upgrade auf QT 6 mit einer Nicht-OpenGL-Oberfläche aufgerufen

Post by Guest »

meine Konfiguration sieht so aus:

Code: Select all

  Ubuntu 24.04
OCC 7.8.1
QT 6.4.2
Ich habe ein QWindow, das ein QTabWidget enthält, und dieses TabWidget hat zwei untergeordnete Widgets

Code: Select all

  First tab simply associates with a QPushButton
Second tab associates with an OccQtViewer
Der OccQtViewer ist von QOpenGLWidget geerbt und enthält alle OCC-bezogenen Dinge wie diesen:
Image

Nach dem Wechsel vom ersten zum zweiten Tab wird die Benutzeroberfläche durcheinander gebracht und die Tabs reagieren nicht mehr Durch Klicken auf mehr und gleichzeitig wurden folgende Warnmeldungen ausgedruckt:

Code: Select all

  QOpenGLContext::makeCurrent() called with non-opengl surface 0x5c468b22deb0
QRhiGles2: Failed to make context current. Expect bad things to happen.
QOpenGLContext::makeCurrent() called with non-opengl surface 0x5c468b22deb0
QRhiGles2: Failed to make context current. Expect bad things to happen.
QOpenGLContext::makeCurrent() called with non-opengl surface 0x5c468b22deb0
QRhiGles2: Failed to make context current. Expect bad things to happen.
...
Und ich habe den gesamten zugehörigen Quellcode hier angehängt

Code: Select all

https://dev.opencascade.org/system/files/forum/occqt.zip
und

Code: Select all

Under Windows, same code works fine with Qt_6
Under linux, it works fine with Qt_5, but with Qt_6, it will print out above warnings.
Ich habe festgestellt, dass ein ähnliches Problem hier gemeldet wurde:

Code: Select all

  https://github.com/MythTV/mythtv/issues/754
Und habe den darin enthaltenen Vorschlag ausprobiert,SurfaceType wie folgt festzulegen:

Code: Select all

  QWidget* native = nativeParentWidget();
windowHandle()->setSurfaceType(QWindow::OpenGLSurface);
if (native && native->windowHandle())
native->windowHandle()->setSurfaceType(QWindow::OpenGLSurface);
Kein Glück, das könnte ein Kompatibilitätsproblem sein,
aber ich bin mir nicht sicher, ob dieses Problem von OCC oder QT_6 (unter Linux) herrührt.

Code: Select all

Would you please help to fix this issue?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post