hytos / HYTOS / HYTOS / Shapes / EngineeringFreezeItem.py @ 29485992
이력 | 보기 | 이력해설 | 다운로드 (1.48 KB)
1 |
# coding: utf-8
|
---|---|
2 |
""" This is engineering freeze item module """
|
3 |
|
4 |
import os.path |
5 |
import copy, sys |
6 |
try:
|
7 |
from PyQt5.QtCore import * |
8 |
from PyQt5.QtGui import * |
9 |
from PyQt5.QtWidgets import * |
10 |
except ImportError: |
11 |
try:
|
12 |
from PyQt4.QtCore import Qt, QRectF, pyqtSignal, QT_VERSION_STR |
13 |
from PyQt4.QtGui import QGraphicsView, QGraphicsScene, QImage, QPixmap, QPainterPath, QFileDialog |
14 |
except ImportError: |
15 |
raise ImportError("ImageViewerQt: Requires PyQt5 or PyQt4.") |
16 |
|
17 |
"""
|
18 |
A {FreezeItem} is the graphical representation of a {LineNo.Freeze}.
|
19 |
"""
|
20 |
class QEngineeringFreezeItem(QGraphicsRectItem): |
21 |
""" This is engineering freeze item class """
|
22 |
FREEZE_SIZE = 16
|
23 |
|
24 |
def __init__(self, x, y, width, height): |
25 |
QGraphicsRectItem.__init__(self, x, y, width, height)
|
26 |
self.__shadow = QGraphicsDropShadowEffect(blurRadius=20, offset=QPointF(0, 0)) |
27 |
self.setGraphicsEffect(self.__shadow) |
28 |
self.__shadow.setEnabled(True) |
29 |
|
30 |
self.setFlags(QGraphicsItem.ItemIsSelectable)
|
31 |
self.setToolTip('Freeze') |
32 |
|
33 |
def mouseDoubleClickEvent(self, event, isDataList=False): |
34 |
""" toggle freeze value """
|
35 |
|
36 |
line_no = self.parentItem()
|
37 |
freeze = not line_no.prop('Freeze') |
38 |
line_no.set_property('Freeze', freeze)
|
39 |
self.update_freeze(freeze)
|
40 |
|
41 |
def update_freeze(self, freeze): |
42 |
""" update graphics with given freeze value """
|
43 |
self.setBrush(Qt.gray) if freeze else self.setBrush(Qt.white) |
44 |
self.update()
|