Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Qt-GUI嵌入现有OpenGL程序_Qt_Opengl - Fatal编程技术网

将Qt-GUI嵌入现有OpenGL程序

将Qt-GUI嵌入现有OpenGL程序,qt,opengl,Qt,Opengl,我目前正试图让Qt与我现有的程序一起工作 我正在使用SFML创建OpenGL渲染上下文并创建窗口。然而,到目前为止我尝试过的东西总是通过Qt创建一个单独的窗口,而不是仅仅渲染到现有的上下文中 有什么方法可以强制Qt渲染到已经存在的OpenGL上下文中吗?Qt想要完全控制窗口和事件循环,因此这将不起作用(除非您投入大量精力)。最好的办法是使用QGLWidget并用它模拟SFML的事件管理,以便应用程序在Qt上有效运行。很有可能将Qt小部件呈现到OpenGL窗口中(Qt有一个OpenGL小部件后端)

我目前正试图让Qt与我现有的程序一起工作

我正在使用SFML创建OpenGL渲染上下文并创建窗口。然而,到目前为止我尝试过的东西总是通过Qt创建一个单独的窗口,而不是仅仅渲染到现有的上下文中


有什么方法可以强制Qt渲染到已经存在的OpenGL上下文中吗?

Qt想要完全控制窗口和事件循环,因此这将不起作用(除非您投入大量精力)。最好的办法是使用QGLWidget并用它模拟SFML的事件管理,以便应用程序在Qt上有效运行。很有可能将Qt小部件呈现到OpenGL窗口中(Qt有一个OpenGL小部件后端),但这仍然必须由Qt自己管理。

我没有研究细节,但是


我认为查看可能是一个很好的开始。

为什么要将Qt渲染OpenGL的内容设置为非Qt窗口?通常,这些API(SFML、Qt等)喜欢拥有它们渲染到的窗口。通常不支持渲染到其他用户无法控制的窗口。如果没有其他原因,除了没有通用的API用于“窗口”,您可以在它们之间传递……原因是我试图通过将Qt的GUI库嵌入到使用OpenGL提供UI的现有应用程序中,来确定使用Qt的GUI库是否可行。我想要使用它的程序太大了,无法将它调整为使用Qt来处理所有事情,所以我想知道是否只能使用它的GUI部分。不幸的是,我也这么想。太糟糕了,Qt无法手动输入外部事件。谢谢你的澄清。谢谢你的更新。2012年我问这个问题时,Qt5和QQuickRenderControl不可用。所以这可能改变了,这真的很棒。将您的答案标记为已接受答案。:-)