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