在PySide2中如何重新实现QWidget::nativeEven

2024-10-01 15:48:28 发布

您现在位置:Python中文网/ 问答频道 /正文

<^ >如{a1}所述,^ {< CD1>}没有一个虚函数^ {CD2>},它在C++的Qt5中是可用的,并且可实现。我试过重新实现它,但它从来没有被调用过。测试示例如下:

import sys
from PySide2.QtCore import QObject, QSize
from PySide2.QtWidgets import QApplication, QWidget

class MainWidget(QWidget):
    def __init__(self):
        super().__init__()
    def sizeHint(self):
        return QSize(400,300)
    def enterEvent(self, event):
        print("enterEvent") # this log is printed when mouse enters
        return super().enterEvent(event)
    def leaveEvent(self, event):
        print("leaveEvent") # this log is printed when mouse leaves
        return super().leaveEvent(event)
    def nativeEvent(self, eventType, message, result):
        print("nativeEvent") # never see this log
        return super().nativeEvent(eventType, message, result)

if __name__ == "__main__":
    app = QApplication()
    widget = MainWidget()
    widget.show()
    sys.exit(app.exec_())
< >在C++中,我可以观察到很多调用^ {< CD2>}:

^{pr2}$

有没有办法在PySide2中重新实现nativeEvent方法?或者处理Windows消息?


Tags: importselfeventlogreturndefsysthis

热门问题