2017-05-31 149 views
0

我构建GUI在PyQt的一个的QGraphicsView将显示互联项目的大型网络,我想叠加一个较小的门户网站,显示了网络的远的地方的能力 - 不大不小的“图片在画面中“的那种东西。这本身不是问题,因为我可以添加第二个QGraphicsView并将其设置为显示同一场景的不同部分。圆形的QGraphicsView

诀窍是,我想的插图视图为圆形。有谁知道如何可以通过继承或其他一些绝招的QGraphicsView的形状改为矩形之外的东西,?非常感谢!

回答

2

必须使用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_()) 

enter image description here

+0

谢谢@eyllanesc!这工作就像一个魅力! – Grav