python - 圆形 QGraphicsView

标签 python pyqt pyqt5 qgraphicsview

我正在 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_())

enter image description here

关于python - 圆形 QGraphicsView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44274508/

相关文章:

Python 查询(字符串)

python-2.7 - 从 PyQt4 信号转换为 PyQt5 信号不起作用

python - 在 Python 中将 OpenCV 3 (iplImage) 转换为 PyQt5 QImage/QPixmap

python - 如何使用 Python 绑定(bind)在 ITK 中创建网格对象?

python - 模板中使用的 Django URL 名称

python - 如何对齐组合框下拉列表中的字符?

python - 我如何在启动画面pyqt4中添加进度条

python - 如何使用 Python 3.3 和 Qt 5 构建 GUI 应用程序?

python - py2app 应用程序与 PyQt5 崩溃

python - 如何使用python和请求登录wordpress?