-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest01 copy.py
More file actions
55 lines (46 loc) · 1.83 KB
/
test01 copy.py
File metadata and controls
55 lines (46 loc) · 1.83 KB
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
from PySide6.QtCore import QRect, Qt
from PySide6.QtGui import QColor, QPainter, QPen
from PySide6.QtWidgets import QApplication, QWidget
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(100, 100, 400, 400)
self.setWindowTitle("Drawing Example")
self.pen = QPen(QColor(0, 0, 0)) # 创建一个黑色画笔
self.startPos = None # 方框的起始点
self.endPos = None # 方框的结束点
self.show()
def paintEvent(self, event):
# painter = QPainter(self)
# painter.setPen(self.pen)
if self.startPos and self.endPos:
# rect = QRect(self.startPos, self.endPos)
# painter.drawRect(rect)
painter = QPainter(self)
painter.setRenderHint(QPainter.Antialiasing) # 开启抗锯齿
pen_color = QColor(45, 65, 86) # 边框线颜色 #2d4156
painter.setPen(QPen(pen_color, 2))
brush_color = QColor(125, 179, 238, 76) # 内部颜色 #7db3ee 30%透明度
painter.setBrush(brush_color)
rect = QRect(self.startPos, self.endPos)
painter.drawRect(rect)
def mousePressEvent(self, event):
if event.button() == Qt.LeftButton:
self.startPos = event.pos()
self.endPos = event.pos()
self.update() # 触发绘图
def mouseMoveEvent(self, event):
if event.buttons() == Qt.LeftButton:
self.endPos = event.pos()
self.update() # 触发绘图
def mouseReleaseEvent(self, event):
if event.button() == Qt.LeftButton:
self.startPos = None
self.endPos = None
self.update() # 触发绘图
if __name__ == "__main__":
app = QApplication([])
ex = MyWidget()
app.exec()