将QApplication和QOpenGLWidget与自定义的固定timestep循环一起使用

Qt拥有UI的主循环,因为需要QApplication :: exec来获取用户输入(并正确显示窗口,例如通过QOpenGLWidget)。但是,我不想将QTimer用于我的主循环,而是使用更复杂的循环(例如Gaffer on Games的循环)。问题在于,由于QApplication拥有主循环,因此我编写的任何循环都将阻止应用程序执行任何操作。

这样,我想避免调用QApplication :: exec,而是自己轮询输入。我该怎么做?还是有其他方法可以使我自己的代码拥有主循环?

代码结构: 主要:

QApplication app(argc,argv);
QSurfaceFormat::setDefaultFormat(format);
MainUI ui; // MainUI extends QMainWindow
ui.show();
return app.exec();

MainUI拥有另一个扩展OpenGLContext的类的所有权,该类继承了传统的paintGL(),update()等。我向其中添加了一个函数startLoop,它启动了我的(准无限)循环。

lovewang13 回答:将QApplication和QOpenGLWidget与自定义的固定timestep循环一起使用

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3099912.html

大家都在问