Python 如何在Qt中创建基本自定义QGraphicsEffect?

Python 如何在Qt中创建基本自定义QGraphicsEffect?,python,pyside2,qgraphicseffect,Python,Pyside2,Qgraphicseffect,我一直在尝试创建一个基本的QGraphicsEffect来更改小部件的颜色,但首先我尝试创建一个与此完全不同的效果: class QGraphicsSepiaEffect(QtWidgets.QGraphicsEffect): def draw(painter): pixmap = sourcePixmap() painter.drawPixmap(pixmap.rect(), pixmap) 我正在使用PySide2。虽然我在网上查了很多遍,但是没有找到任何样本,既没有模

我一直在尝试创建一个基本的QGraphicsEffect来更改小部件的颜色,但首先我尝试创建一个与此完全不同的效果:

class QGraphicsSepiaEffect(QtWidgets.QGraphicsEffect):
  def draw(painter):
    pixmap = sourcePixmap()
    painter.drawPixmap(pixmap.rect(), pixmap)
我正在使用PySide2。虽然我在网上查了很多遍,但是没有找到任何样本,既没有模板也没有真正的定制效果


我如何编写一个基本效果来改变我的小部件的颜色?

因为你的问题基本上是如何创建自定义效果,然后基于y,我将其翻译为PySide2:

随机输入 导入系统 从PySide2导入QtCore、QtGui、QtWidgets 或 从PyQt5导入QtCore、QtGui、QtWidgets 类HighlightEffectQtWidgets.QGraphicsEffect: def _初始__self,偏移量=1.5,父项=无: 超高光效应,自。\初始\父级 self._color=QtGui.QColor255,0,128 self._offset=offset*QtCore.QPointF1,1 @财产 def offsetself: 返回自.\u偏移 @财产 def colorself: 返回自我 @颜色设定器 def colorself,颜色: 自身颜色=颜色 def boundingRectForself,sourceRect: return sourceRect.adjusted -self.offset.x,-self.offset.y,self.offset.x,self.offset.y 我自己,画家: 偏移量=QtCore.QPoint 尝试: pixmap=self.sourcePixmapQtCore.Qt.LogicalCoordinates,偏移量 除类型错误外: pixmap,offset=self.sourcePixmapQtCore.Qt.LogicalCoordinates 绑定=self.boundingRectForQtCore.QRectFpixmap.rect 救命 painter.setPenQtCore.Qt.NoPen 油漆工 p=QtCore.QPointFoffset.x-self.offset.x,offset.y-self.offset.y bound.moveTopLeftp painter.drawRoundedRectbound,5,5,QtCore.Qt.RelativeSize painter.drawPixmapoffset,pixmap 修复 如果uuuu name uuuuu==\uuuuuuuu main\uuuuuuuu: app=qtwidts.QApplicationsys.argv w=qtwidts.QWidget lay=qtwidts.QVBoxLayoutw 对于范围3中的uu: o=qtwidts.QLabel o、 设置样式表 背景色:{}.format QtGui.QColor*random.samplerange255,3.name 效果=高亮效果父级=o o、 SetGraphicsEffect效应 艾德维吉托酒店 w、 展示 w、 调整尺寸640480 sys.exitapp.exec_
这不可编译,super接受1个参数,0 give,应该是superHighlightEffect,self@JoanVenge您使用什么版本的python?我假设如果OP没有指出它,那么使用最新版本的Python,即python3,但您似乎使用python2。然后,请在您的答案中指定版本,以供将来的读者使用。@JoanVenge MHO最好让OP指定其版本:-这样那些试图回复的人就知道答案必须有哪些限制。@JoanVenge无论如何,我已经将其更新为与python2兼容