在PyQt标签中使用QPainter删除鼠标释放后的矩形,可以按照以下步骤进行操作:
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel
from PyQt5.QtGui import QPainter, QColor, QPen
from PyQt5.QtCore import Qt, QRect
class CustomLabel(QLabel):
def __init__(self, parent=None):
super().__init__(parent)
self.rect = QRect() # 用于存储矩形的坐标和尺寸
def mousePressEvent(self, event):
self.rect.setTopLeft(event.pos()) # 记录鼠标按下时的位置
def mouseReleaseEvent(self, event):
self.rect.setBottomRight(event.pos()) # 记录鼠标释放时的位置
self.update() # 更新标签的绘制
def paintEvent(self, event):
super().paintEvent(event)
painter = QPainter(self)
painter.setPen(QPen(Qt.red, 2, Qt.SolidLine))
painter.drawRect(self.rect) # 绘制矩形
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Delete Rectangle Example")
self.setGeometry(100, 100, 400, 300)
label = CustomLabel(self)
label.setGeometry(50, 50, 300, 200)
self.setCentralWidget(label)
if __name__ == "__main__":
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
这样,当在标签上按下鼠标并释放后,会在标签上绘制一个红色的矩形。如果需要删除矩形,可以在鼠标释放后重新绘制标签,不包括矩形的部分。
推荐的腾讯云相关产品:腾讯云服务器(CVM)和腾讯云对象存储(COS)。
领取专属 10元无门槛券
手把手带您无忧上云