如何将QGraphicsEffect添加到Qt中的QAbstractItemView?

2024-09-30 02:23:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Qt中(在python2.7中使用PySide2,但应适用于任何使用Qt的语言)添加一个QGraphicsEffect到一个QAbstractItemView(可能是一个QListViewQTableView,对所有这些语言都应该类似)

我怀疑,由于项目视图小部件在每个项目的基础上使用呈现代理等呈现自己的方式,它们不会很好地发挥作用,也没有解决方案。我找不到一个在文档中不起作用的明确引用,因此它似乎应该起作用(我的意思是,它们是QWidget的子类,它支持QGraphicsEffects。这似乎是实现/文档中的一个可能的疏忽)。有人能确认或帮助正确的方法来做或解决这个问题吗

使用模糊效果演示的示例:

from PySide2 import QtWidgets, QtGui, QtCore

lw = QtWidgets.QListWidget()
lw.addItems(["dog", "cat", "fish", "platypus"])
lw.show()

ge = QtWidgets.QGraphicsBlurEffect()
lw.setGraphicsEffect(ge)
ge.setBlurRadius(20)

btn = QtWidgets.QPushButton("so fuzzy!")
btn.show()

ge = QtWidgets.QGraphicsBlurEffect()
btn.setGraphicsEffect(ge)
ge.setBlurRadius(20)

截图:

enter image description here


Tags: 项目文档语言showqtpyside2gebtn
1条回答
网友
1楼 · 发布于 2024-09-30 02:23:48

必须对视口应用效果:

from PySide2 import QtWidgets

app = QtWidgets.QApplication()

lw = QtWidgets.QListWidget()
lw.addItems(["dog", "cat", "fish", "platypus"])
lw.show()

ge = QtWidgets.QGraphicsBlurEffect()
lw.viewport().setGraphicsEffect(ge)
ge.setBlurRadius(20)

btn = QtWidgets.QPushButton("so fuzzy!")
btn.show()

ge2 = QtWidgets.QGraphicsBlurEffect()
btn.setGraphicsEffect(ge2)
ge2.setBlurRadius(20)

app.exec_()

相关问题 更多 >

    热门问题