Собственная функция PyQt, которая сообщает вам, какой виджет находится в данной позиции? - PullRequest
0 голосов
/ 14 сентября 2011

Я создаю библиотеку видеоряда, где каждый эскиз представляет собой QIcon для QPushButton.Мне бы хотелось, чтобы миниатюры выдвигали кадр, когда пользователь нажимает среднюю кнопку мыши поверх QPushButton.Задача состоит в том, чтобы определить, какой виджет находится под мышью во время прокрутки.

Я получаю координаты X и Y события прокрутки колеса, например:

def wheelEvent(self, event):
        x = event.pos().x()
        y = event.pos().y()

, есть какая-то встроенная функция PyQt, которую я пропускаю, например, getWidgetAt (x, y), которую я могу использовать, чтобы выяснить, над каким QPushButton пользователь наводит курсор?

Спасибо за ваш совет!

1 Ответ

1 голос
/ 14 сентября 2011

Вы можете получить виджет с помощью

hoveredWidget = QApplication.widgetAt(event.globalPos())
# or  
hoveredWidget = self.childAt(event.pos())

Но было бы более целесообразно создать подкласс QPushButton для реализации wheelEvent непосредственно внутри целевого виджета.

...