问题标签 [qglwidget]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - Qt & OpenGL - QGLWidget & QPainter:深度缓冲
我将 QGLWidget 子类化,并将我的绘画代码放在 paintEvent 而不是 paintGL 中,因为我想使用 QPainter 在使用 OpenGL 完成的 3D 内容上绘制 2D 叠加层。
当我没有覆盖时,我的深度缓冲工作正常。如果叠加层被绘制,我的深度缓冲区就会离开:我可以看到应该被前面的对象隐藏的东西。
初始化GL看起来像这样:
我的paintEvent代码的结构如下:
根据 if,相同的场景看起来不错(覆盖关闭)或错误(覆盖打开)。除了奇怪的深度缓冲问题之外,它工作得非常好。
我的(疯狂的)猜测是 QPainter 的构造禁用了深度缓冲。任何提示将不胜感激。我想一个后备解决方案是将我的叠加层渲染为纹理并让 OpenGL 将其混合。
c++ - QGLWidget 的 glXXX 函数调用是如何处理的?
Qt 如何处理对 QGLWidget 中的 glVertex3f 等各种 OpenGL 函数的函数调用?
这些调用是 QGLWidget 对象的一部分,还是严格来说是全局命名空间 OpenGL 函数?
从单独的类中绘制 QGLWidget 的最佳实践是什么?
qt - 切QGLWidget?
是否可以剪切 QGLWidget?我的意思是我想剪掉它,这样我就可以访问下面的 gui。这听起来很奇怪,但是将我的 QGLWidget 分成两部分对我来说需要做很多工作。我希望你明白我的意思。谢谢
qt - QGLWidget 的问题
我对 QGLWidget 有疑问。实际上,通过鼠标操作,QGLWidget 将得到更新。我需要从此小部件打开另一个窗口,例如使用双击事件。我正在创建一个以 QGLWidget 作为父级的新小部件 QWidget,并将以下标志设置为新窗口。
QWidget::setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint);
这个新窗口可以正常打开,按预期工作。但是当我关闭这个窗口并尝试更新 QGLWidget 时,它的行为很奇怪。整个 QGLWidget(新窗口打开的区域)的一小部分正在更新,但不是整个 QGLWidget。
另外,错过了在这里更新另一点。这个问题并非每次都发生。qt 应用程序由另一个应用程序打开,并使用所需的 dll 重新分发。当作为独立应用程序打开时,它没有问题。但是当用其他应用程序打开时,问题又出现了。
任何想法为什么?
谢谢!!
qt - QGLWidget 上的上下文菜单问题
我对 QGLWidget 和 QTreeView 上的自定义上下文菜单有疑问。我将 QTreeview 和 QGLWidget 添加到带有拆分器的通用小部件中。我通过以下代码打开上下文菜单。
actions 是 QActions 的列表。
在 QGLWidget 上按下鼠标时,如果满足某些条件,鼠标光标会发生变化。右键单击打开上下文菜单后,如果在其中一个菜单项上按下鼠标,一切都很好。如果在上下文菜单的一项上没有发生鼠标按下,则上下文菜单关闭并且问题开始。问题是即使在按下鼠标时满足所有条件,鼠标光标也不会改变。我不确定 QWidget 是否在这里失去焦点。所以,我尝试在鼠标按下事件中设置焦点。但帮助不大。任何解决此问题的建议。
谢谢!
qt - 以其他窗口为父时将QGLWidget全屏
我已经成功地通过调用 showFullScreen() 和 showNormal() 来打开/关闭全屏,因为 QGLWidget 是我的 Qt 应用程序的顶级窗口。但是,我希望有一个从 QGLWidget 派生的 gl 窗口作为更复杂的 GUI 的一部分,作为另一个主窗口的父窗口,其中包含其他小部件(包括另一个 glwidget),并且让这个“主要”gl 窗口能够全屏显示击键返回。我找不到向我展示如何执行此操作的文档,有什么帮助吗?
谢谢!!
linux - OpenGL窗口视频捕获问题
可能这很容易,但我找不到合适的词让谷歌吐出我需要的东西。我有一个自定义派生的 QGLWidget 并想做一些视频捕获以将其展示给其他人。
捕获适用于所有其他小部件(按钮、复选框、...),但我的 GLWidget 保持空白(对于普通用户来说,它是完全响应的)。当我将鼠标悬停在它上面时,鼠标的矩形区域会在小部件上重新绘制。
我如何告诉我的小部件/窗口系统在动作捕捉时刷新整个区域?
可能与同样的问题有关:我曾经在 TeamViewer 中进行过一次会话,其中发生了同样的问题。
编辑
当我使用 Qt Demo Hello GL 并捕获它时,也会出现同样的问题。
编辑2
我尝试了我的一个 GLUT 演示,但它们也不起作用,我还阅读了有关记录 opengl 输出的问题,但这是在 Windows 机器上。也许linux上也有问题?
顺便提一句。我使用 xvidcap 进行捕获。
c++ - 使用 QT 和 OpenGL 编译 c++ 应用程序的问题
我正在按照本教程使用 QT 在 C++ 中构建一个简单的 OpenGL 应用程序。
我正在尝试使用 g++ 和命令行编译应用程序,但出现以下错误:
我已经尝试寻找解决方案,但我可以建议更改.pro
文件的所有解决方案,我认为这是 Netbeans 或 Codeblocks 使用的东西,我都没有使用它们。
传递给 g++ 以便编译此应用程序的正确命令行标志是什么?
这是我目前正在使用的 g++ 命令:
编辑:我最终使用了一个看起来像这样的项目文件。
qt - 从 QGLWidget 中进行 VTK 渲染
我有一个问题,我已经尝试解决好几天了,但没有多大成功..
所以,基本上我想使用 Qt 中的 VTK,而且我知道有一个不错的 QVTK 模块。我的问题是我必须以某种方式从 QGLWidget 中进行渲染(我正在使用一种框架,其中我的视图或多或少是 qglwidgets,我不能真正使用除此之外的其他东西)
我找到了诸如http://prashanthudupa.livejournal.com/48221.html之类的资源,用于在 QGraphicsView 中呈现 vtk,但我仍然无法找到是否或如何从 qglwidget 中呈现 vtkrenderer
谢谢你的帮助
qt - Qt OpenGL默认比例真的很奇怪
我正在研究 Qt 编程书中的 OpenGL 示例。几乎一切正常,但默认比例似乎很遥远。我应该看到一个非常标准的立方体,但我看到了这个。
我的多维数据集代码如下所示:
等等...
我没有调用任何奇怪的 glScalef。我的 resizeGL() 看起来像这样:
m_cubeSize 为 1.0
无论如何,当我在 draw() 函数中执行此操作时:
我看到了这个(看起来正确):
有谁知道为什么默认情况下 x 比例会这么小?我正在按照书上所说的去做,但我真的很困惑。我之前做过很多 OpenGL(使用 Glut),但这是我第一次使用 Qt 作为包装器。