PyQT或Pyside是否支持OpenGL按钮/常规小部件覆盖(我在寻找与FlashPrint的此屏幕截图类似的东西?我什至在使用Google搜索时遇到了麻烦,因为我不知道该怎么称呼。在这里叠加是正确的术语吗?另外,如果PyQT或Pyside都不支持,是否有基于Python的GUI允许这样做?
2 回答
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
通常,混合OpenGL渲染和OS渲染(用于按钮或其他控件)不是一个好主意。
一种解决方案是先绘制控件(在内存中更好),然后对其进行“截屏”。然后进行OpenGL渲染。然后将图像传递到OpenGL,并在先前的渲染之上进行渲染。缺点是您失去了所有控制反应,它们只是图像。
另一种方法可能会更好。首先渲染OpenGL。然后获取该图像(例如glReadPixels
)。然后将图像设为背景。然后绘制控件。
holdtom
TA贡献1805条经验 获得超10个赞
我不知道这是否仍然是一个实际的问题,但是无论如何:
如果您正在使用QOpenGLWidget
(在较新的Qt版本中建议使用),则可以像通常使用a一样创建任何现有布局,QWidget
并在其中添加自定义按钮。(作为示例)它的样子:
如您所见,我在左侧QWidget
的绿色顶部添加了一个自定义的,完全交互式的条,该条继承自QOpenGLWidget
。
还值得一提的是,您可以指定Qt表面格式,以使用特定版本强制使用OpenGl窗口渲染。另外,如果您想OpenGL
在应用程序中使用,请添加一个属性QApplication.setAttribute(Qt.AA_UseDesktopOpenGL)
以使用桌面OpenGL。
添加回答
举报
0/150
提交
取消