圆形的QGraphicsView
问题描述:
我构建GUI在PyQt的一个的QGraphicsView将显示互联项目的大型网络,我想叠加一个较小的门户网站,显示了网络的远的地方的能力 - 不大不小的“图片在画面中“的那种东西。这本身不是问题,因为我可以添加第二个QGraphicsView并将其设置为显示同一场景的不同部分。圆形的QGraphicsView
诀窍是,我想的插图视图为圆形。有谁知道如何可以通过继承或其他一些绝招的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_())
谢谢@eyllanesc!这工作就像一个魅力! – Grav