我正在PyQt中构建一个图形用户界面,它的QGraphicsView将显示一个大型的互联项目网络,我希望能够叠加一个较小的门户,显示网络中的一个较远的部分--类似于“图片中的图片”之类的东西。这本身并不是一个问题,因为我可以添加第二个QGraphicsView,并将其设置为显示同一场景的不同部分。
诀窍是,我希望嵌入视图是圆形的。有人知道如何通过子类或其他技巧将QGraphicsView的形状更改为矩形以外的形状吗?非常感谢!
发布于 2017-05-31 02:30:10
您必须使用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_())

https://stackoverflow.com/questions/44274508
复制相似问题