为了账号安全,请及时绑定邮箱和手机立即绑定

PyQT / Pyside Opengl小部件覆盖

PyQT / Pyside Opengl小部件覆盖

青春有我 2021-04-02 22:17:15
PyQT或Pyside是否支持OpenGL按钮/常规小部件覆盖(我在寻找与FlashPrint的此屏幕截图类似的东西?我什至在使用Google搜索时遇到了麻烦,因为我不知道该怎么称呼。在这里叠加是正确的术语吗?另外,如果PyQT或Pyside都不支持,是否有基于Python的GUI允许这样做?
查看完整描述

2 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

通常,混合OpenGL渲染和OS渲染(用于按钮或其他控件)不是一个好主意。

一种解决方案是先绘制控件(在内存中更好),然后对其进行“截屏”。然后进行OpenGL渲染。然后将图像传递到OpenGL,并在先前的渲染之上进行渲染。缺点是您失去了所有控制反应,它们只是图像。

另一种方法可能会更好。首先渲染OpenGL。然后获取该图像(例如glReadPixels)。然后将图像设为背景。然后绘制控件。


查看完整回答
反对 回复 2021-04-09
?
holdtom

TA贡献1805条经验 获得超10个赞

我不知道这是否仍然是一个实际的问题,但是无论如何:

如果您正在使用QOpenGLWidget(在较新的Qt版本中建议使用),则可以像通常使用a一样创建任何现有布局,QWidget并在其中添加自定义按钮。(作为示例)它的样子:

//img1.sycdn.imooc.com//607011870001fbe416830945.jpg

如您所见,我在左侧QWidget的绿色顶部添加了一个自定义的,完全交互式的条,该条继承自QOpenGLWidget

还值得一提的是,您可以指定Qt表面格式,以使用特定版本强制使用OpenGl窗口渲染。另外,如果您想OpenGL在应用程序中使用,请添加一个属性QApplication.setAttribute(Qt.AA_UseDesktopOpenGL)以使用桌面OpenGL。


查看完整回答
反对 回复 2021-04-09
  • 2 回答
  • 0 关注
  • 293 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信