Unsolved How can I consistently create QOpenGLWidget applications to show up?
-
I've been having this problem for a while. I created an application that I can successfully display a black screen using the QOpenGLWidget on the Creator plopped inside of a QFrame or even on the QMainWindow itself. However, there are random times where I do the same thing, where nothing is on the QMainWindow except the OpenGLWidget and the program will not run. It just hangs and doesn't ever load the widget, doesn't load anything, just sits there until I am forced to close the program. This is about the fourth time this has happened to me.
Has anyone run into this issue before? I don't really know how to replicate the problem.
-
Hi,
You're not providing enough information:
- What version of Qt ?
- What OS ?
- What graphics card ?
- Can you reproduce that with a minimal compilable example ?
-
On clicking About QT Creator gives me Qt Creator 4.8.2, Qt 5.12.1
I am on Windows 10 Pro.
I have a NVIDIA RTX 2080
And like I said, all I did was open a new project, click edit, double click on the ui file, plop a OpenGLWidget on top of it, and press run.And then it just hangs forever.
Then sometimes, if I recreate the same program, from scratch, it just works. Which is something I do not understand at all.
-
The about Qt Creator dialog shows information about Qt Creator itself not the Qt version you are currently using to build your application.
-
@SGaist How do I find that?
-
Update kind of a weird one. I updated my graphics driver. Started the program and it launched. I thought that was solution and then I closed the test program. Relaunched it and the same behavior happened. I then restarted my computer to see if it was the restart that kicked the program into shape. It did not. The behavior is still the same.
As far as I know @SGaist, the version I am using to build Qt is 5.12.1. Unless there is something else I need to look up.
I have tried with both VS2017 64bit compiler and MinGW-64 bit compiler and both produce the same behavior.
-
It is definitely QT 5.12.1. And to recreate the crash, as I have said, all I have done is:
File->New File or Project->QT Application
I then go to the ui file, drag an OpenGL Widget on the QMainwindow, hit save, then run.
The program then hangs forever. It doesn't crash, doesn't connect to any server, just hangs there until I force quit the application.
-
Update 2 Not sure why, but this seems to be a problem on Windows. I cloned down the project I was working on into my Linux machine running Ubuntu 17.04. There is no hang up whatsoever. I can develop from here, but this really isn't the most ideal way to develop if I can help it. I am also not sure if this is a bug within the Windows side of things.
What should I do from this point on?
-
You can start by updating your Qt version to the latest version of the 5.12 series. If it still crashes, you can also try the 5.13 beta.
-
I did an update of QT and the same behavior has produced itself. I did not try the beta. That is something I can try here in an hour or two.
-
Is it practical to ever use a QOpenGLWidget without subclassing it anyway? Or promoting it? I thought using that widget would require a fair amount of opengl code to go with it.
-
@fcarney That is what I am doing. I create a class, and then with the widget I promote it to that class. At least this is what I am attempting to do with my current program in Windows. However, like I said, it just hangs there for no reason. It doesn't crash, just hangs, no errors.
So to recreate it, I just created a new project from scratch and then threw the widget on there and hit run. Again, same behavior. But, when I go to Ubuntu 17.04, there is no issue, the program runs just fine. Which tells me there is something wrong with the windows side of things.
I was able to finish my project within Linux, however, getting it to run in Window's will now be the trick because it doesn't want to run in Windows. It just hangs there.
-
Went to 5.12.3 and I have the same results on Windows. I've tried with 5.12.1, 5.12.2, and now 5.12.3 and all have the same exact behavior.
which is odd, because the one application in which my opengl program works was ran with 5.12.1. So I don't really know why it would start acting this way now. -
Update 3
I uninstalled and reinstalled QT. And that did not work either, I really do not understand why this is happening as I don't think I have done anything different from the past. I am not sure if this is a bug, since I seem to be the only one suffering from this problem. I have attached images of one of my programs running, another image of the program I am working on hanging, and a final image showing how simple the ui looks compared to the one that is working.
So I do not know what to do from here. Again, I am not sure if this is something I am doing wrong, if it is a bug, or maybe it is just my computer. I have tried this program in both Linux and MacOSX and it runs just fine. However, when I try this in Windows. It doesn't work at all. So I am at a complete loss of what to try. I have also linked the code that I am working on if anyone would like to clone it down and try running it. You must have C++17 in order for this program to run however.
Image 1:
Image 2:
Image 3:
Github link: https://github.com/Sailanarmo/ControllerTest
@SGaist @fcarney or anyone who would like to help out. This is as far as I can get. Where do I go from here?
-
It might be a graphics card driver issue. Can you test your application on a Windows machine with a different card ? Or update/downgrade your Nvidia drivers.
-
I will go ahead and try that next. That is the only thing I haven't done. I have updated my Nvidia drivers to their latest versions. It's just odd to me since my linux partition is using the same graphics card as my Windows machine. When I get home I will test it on my Windows Machine there.
Thank you for working with me.
-
Then we can rule out a hardware related issue. So it's very likely the driver. Even if the same version, these are still two radically different platforms.
-
I will uninstall my graphics driver and reinstall them. I will let you know what happens.
-
I've uninstalled the graphics drivers and I attempted to launch the same application without the drivers. The same behavior happened. I then reinstalled the graphics drivers and launched the program, and the same behavior happened.
I could try downgrading my driver version. But I do not know where to go to find a lesser version of my drivers. I also don't know, why Qt chooses to launch one application, and not the other just fine. It's all very confusing.
-
I just launched the program from my home. It launches just fine. Only difference is that I am running a GTX 1080ti instead of an RTX 2080. I know I am repeating the same thing, but I do not understand why the linux machine with the same physical graphics card runs the program fine. But when I switch to the windows partition, it craps out.
I'm kind of at a loss here. Maybe it is a hardware issue within windows itself. Or maybe it's a one time fluke and it is only affecting me.