MCPcopy Index your code
hub / github.com/PyQt5/PyQt / GraphicsView

Class GraphicsView

QGraphicsView/WorldMap.py:27–155  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

25
26
27class GraphicsView(QGraphicsView):
28 # 背景区域颜色
29 backgroundColor = QColor(31, 31, 47)
30 # 边框颜色
31 borderColor = QColor(58, 58, 90)
32
33 def __init__(self, *args, **kwargs):
34 super(GraphicsView, self).__init__(*args, **kwargs)
35 self.resize(800, 600)
36 # 设置背景颜色
37 self.setBackgroundBrush(self.backgroundColor)
38 '''
39 #参考 http://doc.qt.io/qt-5/qgraphicsview.html#CacheModeFlag-enum
40 CacheNone 不使用缓存
41 CacheBackground 缓存背景
42 '''
43 self.setCacheMode(self.CacheBackground)
44 '''
45 #参考 http://doc.qt.io/qt-5/qgraphicsview.html#DragMode-enum
46 NoDrag 什么都没发生; 鼠标事件被忽略。
47 ScrollHandDrag 光标变成指针,拖动鼠标将滚动滚动条。 该模式可以在交互式和非交互式模式下工作。
48 RubberBandDrag 拖动鼠标将设置橡皮筋几何形状,并选择橡皮筋所覆盖的所有项目。 对于非交互式视图,此模式被禁用。
49 '''
50 self.setDragMode(self.ScrollHandDrag)
51 '''
52 #参考 http://doc.qt.io/qt-5/qgraphicsview.html#OptimizationFlag-enum
53 DontClipPainter 已过时
54 DontSavePainterState 渲染时,QGraphicsView在渲染背景或前景时以及渲染每个项目时保护painter状态(请参阅QPainter.save())。 这允许你离开painter处于改变状态(即你可以调用QPainter.setPen()或QPainter.setBrush(),而不需要在绘制之后恢复状态)。 但是,如果项目一致地恢复状态,则应启用此标志以防止QGraphicsView执行相同的操作。
55 DontAdjustForAntialiasing 禁用QGraphicsView的抗锯齿自动调整曝光区域。 在QGraphicsItem.boundingRect()的边界上渲染反锯齿线的项目可能会导致渲染部分线外。 为了防止渲染失真,QGraphicsView在所有方向上将所有曝光区域扩展2个像素。 如果启用此标志,QGraphicsView将不再执行这些调整,最大限度地减少需要重绘的区域,从而提高性能。 一个常见的副作用是,使用抗锯齿功能进行绘制的项目可能会在移动时在画面上留下绘画痕迹。
56 IndirectPainting 从Qt 4.6开始,恢复调用QGraphicsView.drawItems()和QGraphicsScene.drawItems()的旧绘画算法。 仅用于与旧代码的兼容性。
57 '''
58 self.setOptimizationFlag(self.DontSavePainterState)
59 '''
60 #参考 http://doc.qt.io/qt-5/qpainter.html#RenderHint-enum
61 Antialiasing 抗锯齿
62 TextAntialiasing 文本抗锯齿
63 SmoothPixmapTransform 平滑像素变换算法
64 HighQualityAntialiasing 请改用Antialiasing
65 NonCosmeticDefaultPen 已过时
66 Qt4CompatiblePainting 从Qt4移植到Qt5可能有用
67 '''
68 self.setRenderHints(QPainter.Antialiasing | QPainter.TextAntialiasing |
69 QPainter.SmoothPixmapTransform)
70 if QGLFormat.hasOpenGL():
71 self.setRenderHint(QPainter.HighQualityAntialiasing)
72 '''
73 #当视图被调整大小时,视图如何定位场景。使用这个属性来决定当视口控件的大小改变时,如何在视口中定位场景。 缺省行为NoAnchor在调整大小的过程中不改变场景的位置; 视图的左上角将显示为在调整大小时被锚定。请注意,只有场景的一部分可见(即有滚动条时),此属性的效果才明显。 否则,如果整个场景适合视图,QGraphicsScene使用视图对齐将视景中的场景定位。
74 #参考 http://doc.qt.io/qt-5/qgraphicsview.html#ViewportAnchor-enum
75 NoAnchor 视图保持场景的位置不变
76 AnchorViewCenter 视图中心被用作锚点。
77 AnchorUnderMouse 鼠标当前位置被用作锚点
78 '''
79 self.setResizeAnchor(self.AnchorUnderMouse)
80 '''
81 Rubber选择模式
82 #参考 http://doc.qt.io/qt-5/qt.html#ItemSelectionMode-enum
83 ContainsItemShape 输出列表仅包含形状完全包含在选择区域内的项目。 不包括与区域轮廓相交的项目。
84 IntersectsItemShape 默认,输出列表包含其形状完全包含在选择区域内的项目以及与区域轮廓相交的项目。

Callers 1

WorldMap.pyFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected