-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrenderwin.py
38 lines (29 loc) · 1.29 KB
/
renderwin.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from PyQt5.QtWidgets import QMainWindow, QScrollArea, QStyle, QStyleOptionSlider
from PyQt5.QtCore import QSize
from canvas import Canvas
from qt_touchup_lib import clip
class RenderWin(QMainWindow):
def __init__(self, loc, img, w, h, r, parent=None):
super(RenderWin, self).__init__(parent)
self.parent = parent
self.setWindowTitle(" ")
self.setGeometry(loc)
self.move( parent.x() + parent.width()/2,
parent.y() + parent.height()/2)
self.canvas = Canvas(img, w, h, r, self)
self.scrollview = QScrollArea(self)
bar_w = self.scrollview.style().subControlRect(
QStyle.CC_ScrollBar, QStyleOptionSlider(),
QStyle.SC_ScrollBarGroove, self).x()
self.scrollview.setWidget(self.canvas)
self.setCentralWidget(self.scrollview)
default_max_w, default_max_h = 300, 300
self.setFixedSize(QSize(clip(w + bar_w, 0, default_max_w),
clip(h + bar_w, 0, default_max_h)))
self.setMaximumSize(QSize(w + bar_w, h + bar_w))
self.canvas.update()
def closeEvent(self, event):
self.parent.on_finish_editing()
self.parent.on_child_destroyed()
self.canvas.reset_mask()
event.accept(); self.destroy()