我正在 PyQt 中使用 QGraphicsView 构建一个 GUI,它将显示互连项目的大型网络,并且我希望能够叠加一个较小的门户来显示网络的远处部分 - 有点像“画中画” “之类的事情。这本身并不是问题,因为我可以添加第二个 QGraphicsView 并将其设置为显示同一场景的不同部分。
诀窍是,我希望插图 View 是圆形的。有谁知道如何通过子类化或其他一些技巧将 QGraphicsView 的形状更改为矩形以外的形状?非常感谢!
最佳答案
您必须使用setMask
函数并向其传递QRegion
:
示例:
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
if __name__ == '__main__':
app = QApplication(sys.argv)
w = QWidget()
w.resize(430, 460)
lay = QVBoxLayout(w)
view = QGraphicsView()
view.resize(400, 400)
region = QRegion(view.rect(), QRegion.Ellipse)
view.setMask(region)
lay.addWidget(view)
btn = QPushButton(w)
lay.addWidget(btn)
w.show()
sys.exit(app.exec_())
关于python - 圆形 QGraphicsView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44274508/