Я пытаюсь перенести работу с 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
Наведение eventFilter от Pyside2 до Pyside6 не возвращает QHoverEvent для позиции() ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Функция Python EventFilter не получает перетаскивание или падение после InstalleVentfilter
Anonymous » » в форуме Python - 0 Ответы
- 44 Просмотры
-
Последнее сообщение Anonymous
-