Skip to content

Commit 23fe506

Browse files
committed
for QtPainter use with context
1 parent cd769c7 commit 23fe506

File tree

4 files changed

+41
-41
lines changed

4 files changed

+41
-41
lines changed

saenopy/gui/code/code_editor.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -82,24 +82,24 @@ def highlightCurrentLine(self):
8282
self.setExtraSelections(extraSelections)
8383

8484
def lineNumberAreaPaintEvent(self, event):
85-
painter = QtGui.QPainter(self.lineNumberArea)
86-
painter.fillRect(event.rect(), lineNumbersBackgroundColor)
87-
block = self.firstVisibleBlock()
88-
blockNumber = block.blockNumber()
89-
top = round(self.blockBoundingGeometry(block).translated(self.contentOffset()).top())
90-
bottom = top + round(self.blockBoundingRect(block).height())
91-
92-
while block.isValid() and top <= event.rect().bottom():
93-
if block.isVisible() and bottom >= event.rect().top():
94-
number = str(blockNumber + 1)
95-
if blockNumber == self.textCursor().blockNumber():
96-
painter.fillRect(QtCore.QRect(0, top, self.lineNumberArea.width()+10, self.fontMetrics().height()), lineColor)
97-
98-
painter.setPen(QtGui.QColor(lineNumbersTextColor))
99-
painter.drawText(0, top, self.lineNumberArea.width()-lineNumbersRightMargin, self.fontMetrics().height(),
100-
QtCore.Qt.AlignRight, number)
101-
102-
block = block.next()
103-
top = bottom
85+
with QtGui.QPainter(self.lineNumberArea) as painter:
86+
painter.fillRect(event.rect(), lineNumbersBackgroundColor)
87+
block = self.firstVisibleBlock()
88+
blockNumber = block.blockNumber()
89+
top = round(self.blockBoundingGeometry(block).translated(self.contentOffset()).top())
10490
bottom = top + round(self.blockBoundingRect(block).height())
105-
blockNumber += 1
91+
92+
while block.isValid() and top <= event.rect().bottom():
93+
if block.isVisible() and bottom >= event.rect().top():
94+
number = str(blockNumber + 1)
95+
if blockNumber == self.textCursor().blockNumber():
96+
painter.fillRect(QtCore.QRect(0, top, self.lineNumberArea.width()+10, self.fontMetrics().height()), lineColor)
97+
98+
painter.setPen(QtGui.QColor(lineNumbersTextColor))
99+
painter.drawText(0, top, self.lineNumberArea.width()-lineNumbersRightMargin, self.fontMetrics().height(),
100+
QtCore.Qt.AlignRight, number)
101+
102+
block = block.next()
103+
top = bottom
104+
bottom = top + round(self.blockBoundingRect(block).height())
105+
blockNumber += 1

saenopy/gui/common/QtShortCuts.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1306,10 +1306,10 @@ def paintEvent(self, event):
13061306

13071307
opt = QtWidgets.QStyleOption()
13081308
opt.initFrom(self)
1309-
painter = QtGui.QPainter(self)
1309+
with QtGui.QPainter(self) as painter:
13101310

1311-
self.style().drawPrimitive(QtWidgets.QStyle.PE_Widget, opt, painter, self)
1311+
self.style().drawPrimitive(QtWidgets.QStyle.PE_Widget, opt, painter, self)
13121312

1313-
self.style().drawItemText(painter, self.rect(),
1314-
self.textalignment, self.palette(), True, self.text())
1313+
self.style().drawItemText(painter, self.rect(),
1314+
self.textalignment, self.palette(), True, self.text())
13151315

saenopy/gui/common/gui_classes.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -252,14 +252,14 @@ def __init__(self, parent=None, title='', animationDuration=300, url=None):
252252
self.toggleButton.valueChanged.connect(self.changedActive)
253253

254254
def paintEvent(self, ev: QtGui.QPaintEvent) -> None:
255-
p = QtGui.QPainter(self)
256-
p.setPen(QtGui.QPen(QtGui.QColor("gray")))
257-
#p.setBrush(QtGui.QBrush(QtGui.QColor("gray")))
258-
top = 5
259-
p.drawRect(0, self.height()-1, self.width(), 0)
260-
p.drawRect(0, top, 0, self.height())
261-
p.drawRect(0, top, 7, 0)
262-
p.drawRect(self.width()-1, top, 0, self.height())
255+
with QtGui.QPainter(self) as p:
256+
p.setPen(QtGui.QPen(QtGui.QColor("gray")))
257+
#p.setBrush(QtGui.QBrush(QtGui.QColor("gray")))
258+
top = 5
259+
p.drawRect(0, self.height()-1, self.width(), 0)
260+
p.drawRect(0, top, 0, self.height())
261+
p.drawRect(0, top, 7, 0)
262+
p.drawRect(self.width()-1, top, 0, self.height())
263263
super().paintEvent(ev)
264264

265265
def toggle(self):

saenopy/gui/spheroid/modules/QSlider.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,15 @@ def paintEvent(self, ev: QtGui.QPaintEvent) -> None:
2121
super().paintEvent(ev)
2222

2323
def drawRect(self, start, end, color, border):
24-
p = QtGui.QPainter(self)
25-
p.setPen(QtGui.QPen(QtGui.QColor("transparent")))
26-
p.setBrush(QtGui.QBrush(QtGui.QColor(color)))
27-
28-
if (self.min is not None) and (end != "None") and (start != "None"):
29-
s = self.width() * (start - self.minimum()) / (self.maximum() - self.minimum() + 1e-5)
30-
e = self.width() * (end - self.minimum()) / (self.maximum() - self.minimum() + 1e-5)
31-
p.drawRect(int(s), int(self.height() * border),
32-
int(e - s), int(self.height() * (1 - border * 2)))
24+
with QtGui.QPainter(self) as p:
25+
p.setPen(QtGui.QPen(QtGui.QColor("transparent")))
26+
p.setBrush(QtGui.QBrush(QtGui.QColor(color)))
27+
28+
if (self.min is not None) and (end != "None") and (start != "None"):
29+
s = self.width() * (start - self.minimum()) / (self.maximum() - self.minimum() + 1e-5)
30+
e = self.width() * (end - self.minimum()) / (self.maximum() - self.minimum() + 1e-5)
31+
p.drawRect(int(s), int(self.height() * border),
32+
int(e - s), int(self.height() * (1 - border * 2)))
3333

3434
def setEvaluated(self, value):
3535
self.evaluated = value

0 commit comments

Comments
 (0)