Отслеживание мыши по холсту не работает - PyQT - PullRequest
1 голос
/ 13 мая 2019

Я хочу включить отслеживание мыши по фигуре (графику), однако отслеживание мыши работает только для области, НЕ ВКЛЮЧАЯ фигуру / холст.

Минимальный код для отображения проблемы:

class PlotWorstRegion(QtWidgets.QWidget):

    def __init__(self, parent = MatplotlibWidget):
        QtWidgets.QWidget.__init__(self, parent)
        self.initUI()

    def initUI(self):

        self.canvas = FigureCanvas(Figure())
        self.canvas.axes = self.canvas.figure.add_subplot(111)

        grid = QtWidgets.QGridLayout()

        x = 0
        y = 0

        self.text = "x: {0},  y: {1}".format(x, y)

        self.label = QtWidgets.QLabel(self.text, self)

        grid.addWidget(self.label,0,0)
        grid.addWidget(self.canvas)

        self.setGeometry(10, 240, 200, 300)

        self.setWindowTitle('Event object')
        self.setLayout(grid)
        self.show()

        self.setMouseTracking(True)

    def mouseMoveEvent(self, e):

        x = e.x()
        y = e.y()

        text = "x: {0},  y: {1}".format(x, y)
        self.label.setText(text)

Когда я закомментирую grid.addWidget(self.canvas), это обеспечивает отслеживание в сетке, за исключением случаев, когда вы наводите указатель мыши над / вокруг виджета.Когда я добавляю self.label.setMouseTracking(True) в InitUI, отслеживание включено везде в сетке.

ОДНАКО, когда я раскомментирую grid.add_widget(self.canvas) И добавлю self.canvas.setMouseTracking(True), отслеживание «блокируется» полотном, а отслеживание включается только за пределами границ полотна.

Любоеочень хотелось бы получить помощь в отслеживании мыши и на холсте!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...