【发布时间】:2023-03-12 19:34:01
【问题描述】:
我正在使用 PyQt4,我想根据用户单击显示为图像标签的现有图像绘制一条线。图像正确显示,单击工具栏中的图标后,用户将在图像上画一条线。
我已经覆盖了 mousePressEvent() 和 mouseReleaseEvent() 以获得 x、y 位置。我已经定义了paintEvent() 来画线。
def mousePressEvent(self,event):
self.startx=event.x()
self.starty=event.y()
def mouseReleaseEvent(self,event):
self.endx=event.x()
self.endy=event.y()
def paintEvent(self,event):
painter=QPainter()
painter.begin(self)
painter.setPen(QPen(Qt.darkGray,3))
painter.drawLine(self.startx,self.starty,self.endx,self.endy)
painter.end()
问题:
- 由于我将
self用于鼠标事件,因此错误提示: object has no attribute 'self.startx' —(我应该如何将小部件与 PyQt 中的 mouseevents 相关联?) -
paintEvent()即使我在应用中移动鼠标也会被调用。
提前致谢……
【问题讨论】: