Наведение eventFilter от Pyside2 до Pyside6 не возвращает QHoverEvent для позиции()Python

Программы на Python
Anonymous
Наведение eventFilter от Pyside2 до Pyside6 не возвращает QHoverEvent для позиции()

Сообщение Anonymous »

Я пытаюсь перенести работу с Pyside2 на Pyside6. Я установил eventFilter с целью захвата позиции при наведении курсора на определенную область просмотра виджетов(). Насколько я могу судить, eventFilter отправляет:


< /blockquote>
В PySide2 он отправит:


В Pyside6 я не могу получить .position() и это сводит меня с ума.
Вот краткий пример того, как это работает в pySide2, но не в pySide6 (кроме импорта и перехода от .pos() к .position()).
from PySide6 import QtGui, QtWidgets, QtCore

class TestWindow(QtWidgets.QMainWindow):
def __init__(self):
super(TestWindow, self).__init__()
self.setMinimumSize(500, 500)
center_widg = QtWidgets.QWidget(self)
self.setCentralWidget(center_widg)
layout = QtWidgets.QVBoxLayout()
self.centralWidget().setLayout(layout)

self.tree_view = QtWidgets.QTreeView()
model = QtGui.QStandardItemModel()
model.setHorizontalHeaderLabels(["colm_01", "colm_02"])
self.tree_view.setModel(model)
self.tree_view.viewport().setAttribute(QtCore.Qt.WidgetAttribute.WA_Hover)
self.tree_view.viewport().installEventFilter(self)

layout.addWidget(self.tree_view)

def eventFilter(self, obj, event):
if obj == self.tree_view.viewport():
if event.type() == QtCore.QEvent.HoverMove:
print(event.position())

return super().eventFilter(obj, event)

def main():
app = QtWidgets.QApplication([])
dialog = TestWindow()
dialog.show()

app.exec_()

if __name__ == "__main__":
main()


Подробнее здесь: https://stackoverflow.com/questions/783 ... r-position

Вернуться в «Python»