Python 如何在pyqt5中的WinIdChange事件后查找小部件新的和旧的winid

Python 如何在pyqt5中的WinIdChange事件后查找小部件新的和旧的winid,python,python-3.x,qt,pyqt5,pyqt4,Python,Python 3.x,Qt,Pyqt5,Pyqt4,根据PyQt5文件,据说 PySide2.qtwidts.QWidget.winId() 返回小部件的窗口系统标识符 原则上是可移植的,但如果你使用它,你可能会做一些不可移植的事情。小心点 如果一个小部件是非本机的(外来的)并且在其上被调用,那么该小部件将被提供一个本机句柄 此值可能在运行时更改。在窗口系统发生更改后,类型为WinIdChange的事件将被发送到小部件 标识符 但我的问题是,它会改变任何小部件的原始winId吗?如果是,如何获得新的和旧的?“它会改变任何小部件的原始winId吗?

根据PyQt5文件,据说

PySide2.qtwidts.QWidget.winId()

返回小部件的窗口系统标识符

原则上是可移植的,但如果你使用它,你可能会做一些不可移植的事情。小心点

如果一个小部件是非本机的(外来的)并且在其上被调用,那么该小部件将被提供一个本机句柄

此值可能在运行时更改。在窗口系统发生更改后,类型为WinIdChange的事件将被发送到小部件 标识符


但我的问题是,它会改变任何小部件的原始winId吗?如果是,如何获得新的和旧的?

“它会改变任何小部件的原始winId吗?”你是什么意思?文档解释说该值可能会更改,这意味着“原始”(以前的)winId将不再有效。是否会发生这种情况我不确定!!之前我问过为什么vlc不能在无框架半透明的背景窗口中播放。当我在python-vlc上提出问题时,他们建议我在前后检查winId几次,以检查实际发生的情况。由于vlc使用winId()进行渲染,我对文档感到困惑。因为在文档中,上面提到的是原则上可移植的
,但如果您使用它,您可能会做一些不可移植的事情。小心。如果一个小部件是非本机的(外来的)并且在其上被调用,那么该小部件将被提供一个本机句柄。此值可能在运行时更改。窗口系统标识符发生变化后,WinIdChange类型的事件将被发送到小部件。
我以前的vlc问题,如果您知道一些对我有帮助的信息。
Return type

    WId