из-за нескольких виджетов на экране неправильно считываются координаты мышки pyqt5
всем привет, делаю аналог paint на pyqt. Почему то мышка рисует как то странно, как будто ошибается с координатами. Буду благодарна за помощь в исправлении.
import sys
from PyQt5 import uic
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QFileDialog, QColorDialog, QMessageBox, QInputDialog, QWidget, QLabel
from PyQt5.QtGui import QImage, QPainter, QPen, QColor, QPixmap
from PyQt5.QtCore import Qt, QPoint, QSize
class PaintApp(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Paint")
uic.loadUi('untitled.ui', self)
self.setGeometry(500, 100, 1200, 1200)
size = self.label.size()
canvas = QPixmap(size)
canvas.fill(Qt.white)
self.label.setPixmap(canvas)
self.last_x, self.last_y = None, None
self.brush_color = Qt.black
self.brush_size = 4
self.create_menu()
def create_menu(self):
main_menu = self.menuBar()
def mouseMoveEvent(self, e):
if self.last_x is None:
self.last_x = e.x()
self.last_y = e.y()
return
painter = QPainter(self.label.pixmap())
painter.drawLine(self.last_x, self.last_y, e.x(), e.y())
painter.end()
self.update()
self.last_x = e.x()
self.last_y = e.y()
def mouseReleaseEvent(self, e):
self.last_x = None
self.last_y = None
if __name__ == "__main__":
app = QApplication(sys.argv)
window = PaintApp()
window.show()
sys.exit(app.exec_())