My app crashes on the laptop and not on the desktop
-
Hello everyone. I discovered that the application I'm writing using the Qt framework works perfectly on the desktop where I developed it but crashes on the laptop. In short:
In the main window there is a QTabWidget which I use to switch screens based on the selected item. When I switch to the screen where I use a 3d window enclosed in a QWidget the gui freezes on this screen and, even clicking on the other elements of the QTabWidget, the GUI stays on that view. If I click on a particular item, the app stops responding. If I replace the QWidget that encloses the 3d window with a simple QWidget there is no problem. Obviously without the code I'm not very helpful in looking for a possible solution, but can you think of anything that can help me?self.view = Qt3DWindow() . . . self.centralWidget = QWidget.createWindowContainer(self.view) #If I replace with QWidget () it works
This is the function I call when I click an element of the QTabWidget
def tabChanged(self): print(self.tab_holder.currentIndex()) if self.tab_holder.currentIndex() == 1: self.segmentationTab.setContents() elif self.tab_holder.currentIndex() == 2: self.labelingTab.setFocus() self.labelingTab.setContents() elif self.tab_holder.currentIndex() == 3: self.reconstructionTab.setContents() else: pass
This is setScene of ReconstructionWidget, which is the widget creates problems if I select it
def setContents(self): print('Okay')
-
Hi,
Which version of Qt are you using ?
Which OS ?
Which graphics driver ? -
How did you install these packages ?
You might also want to check if your drivers are the latest and if so, downgrade to test if they introduced a bug.
-
Then you should check with the drivers.
Does your friend laptop have the same specs as yours ? -
-
The hardcore way would be to setup a minimal Python environment on one of these laptops to check that.
By crash do you mean it does not start at all ?
-
It starts up, and I can browse widgets that don't have a Qt3DWindow. If I select ReconstructionWidget, which has this type of window, the GUI stays stuck on the same point if I select other widgets . However I can interact with the elements of the other widgets, I just don't see them because they are covered by the one with the 3d window. I can't even see the button animations, for example when I hover the mouse over them. Also, selecting the SegmentationWidget the app stops responding and I am forced to close. There are no errors in the terminal.
-
Right, sorry, you wrote that in your initial post...
I would go with setting up a Python environment to check if it's working there.
-
I have implemented a basic app with a 3d window and a torus mesh, it works fine.
In the old app, I found that everything works if I commentself.view.setRootEntity(self.rootEntity)
where
self.rootEntity
is aQEntity()
UPDATE:
It doesn't give problems when I set the root entity, but when I insert mesh, transform and material to a torus entity created as follows:self.material = QPhongMaterial(self.rootEntity) self.torusEntity = QEntity(self.rootEntity) self.torusMesh = QTorusMesh() self.torusMesh.setRadius(5) self.torusMesh.setMinorRadius(1) self.torusMesh.setRings(100) self.torusMesh.setSlices(20) self.torusTransform = QTransform() self.torusTransform.setScale3D(QVector3D(1.0, 1.0, 1.0)) self.torusTransform.setRotation(QQuaternion.fromAxisAndAngle(QVector3D(1, 0, 0), 45)) self.torusEntity.addComponent(self.torusMesh) # <----- Problems from here self.torusEntity.addComponent(self.torusTransform) self.torusEntity.addComponent(self.material)
-
Can you provide a minimal runnable script that triggers this ?