QWidget :: winId()返回的值的详细信息在运行时更改

时间:2018-08-14 01:27:41

标签: c++ qt qt5

QWidget::winId()用于返回窗口小部件所包含的窗口的底层特定于操作系统的句柄。在文档中,其指出:

  

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

听起来直接存储返回的变量似乎是不安全的(至少没有某种机制可以监听事件并更新变量)。

但是,我连接了一个完成该功能的事件过滤器,但从未真正调用过它。

这让我认为这是某些怪异情况的结果,或者是某些操作系统所特有的。

导致窗口ID更改的基本机制是什么?它会影响所有操作系统吗?是否有任何假设可以使其安全存储并在以后使用窗口ID?

在这种情况下,窗口ID仅用于查看操作系统的窗口列表是否包含winId()函数返回的指定ID。

0 个答案:

没有答案