qt中瞬态父母与父母之间的差异

时间:2017-08-23 11:41:14

标签: qt qt5

我对qt中的父母和短暂的父母感到困惑。

  1. 对于同一窗口,是否可以同时具有瞬态和父级?
  2. 对于顶级窗口(像Popup这样的小部件),设置了临时父节点并将父节点设置为NULL?
  3. 请你在qt中分享关于父母和短暂父母的明确想法。

1 个答案:

答案 0 :(得分:2)

  

对于同一窗口,是否可以同时具有瞬态和父级?

是的,但这是一个特例。回想一下QWindow(以及QWidget)是一个QObject。所以你可能希望为了内存管理或抽象所有权而给它一个父级,但不是为了窗口管理的目的。

因此,QWindow(和QWidget)可以通过设置Qt::Window窗口标志使父成为顶级窗口。

,否则,所有无父窗口和窗口小部件都会默认设置该标志 - 并且无法清除它。

如果这样的窗口也是一个瞬态窗口(例如弹出窗口),那么它可以有一个与普通父窗口不同的瞬态父窗口。

  

对于顶级窗口(像Popup这样的小部件),将设置临时父项并将父项设置为nullptr

一般情况下是,但请参阅上文 - 您可以同时设置parent,以便进行内存管理或窗口/窗口小部件集合管理,只要您设置它们上面有Qt::Window窗口标志。