我正在尝试用鼠标画图。你知道吗
当我运行代码并尝试绘制时,在画布上看不到任何结果。怎么了?你知道吗
下面的代码只包含类画布代码,不包括UI和我的项目中的其他东西。你知道吗
from PyQt5 import uic
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class Canvas(QLabel):
def __init__(self, parent=None):
super().__init__(parent)
p = self.palette()
p.setColor(self.backgroundRole(), Qt.white)
self.setAutoFillBackground(True)
self.setPalette(p)
self.setPixmap(QPixmap())
self.pen = QPen()
self.last = None
self.painter = QPainter(self.pixmap())
self.painter.begin(self)
def paintEvent(self, event):
pass
def mouseMoveEvent(self, event):
if self.last:
self.painter.setPen(self.pen)
self.painter.drawLine(self.last, event.pos())
self.last = event.pos()
self.update()
def mousePressEvent(self, event):
self.last = event.pos()
def mouseReleaseEvent(self, event):
self.last = None
给pixmap一个大小,将其保存为成员变量,不要在
paintEvent
中pass
并在绘制pixmap后重置它。你知道吗(小心使用
event.pos()
这是QLabel
内部的位置,当调整QPixmap
和QLabel
大小时,它们不再相同,并且会得到偏移量。)相关问题 更多 >
编程相关推荐