【问题标题】:Difference between transient parent and parent in qtqt中瞬态父与父的区别
【发布时间】:2017-08-23 11:41:14
【问题描述】:

我对 qt 中的父级和瞬态父级感到困惑。

  1. 对于同一个窗口是否可以同时具有瞬态和父级?
  2. 对于顶级窗口(Popup 等小部件)设置了临时父级并将父级设置为 NULL ?

你能分享一下qt中父母和临时父母的清晰想法吗?

【问题讨论】:

    标签: qt qt5


    【解决方案1】:

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

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

    因此,QWindow(和QWidget)可以有一个父窗口并且也可以通过设置Qt::Window 窗口标志作为顶级窗口。否则,所有无父窗口和小部件都会默认设置该标志 - 并且无法清除。

    如果这样的窗口也是一个临时窗口(例如弹出窗口),那么它可以有一个不同于正常父级的临时父级。

    对于顶级窗口(弹出窗口之类的小部件)设置了临时父级,并且父级设置为nullptr?

    通常是的,但见上文 - 您可以出于内存管理或窗口/小部件集合管理的原因设置他们的parent只要您设置@ 987654329@他们的窗口标志。

    【讨论】:

    • 除了弹出窗口之外,还有哪些小部件属于临时父级?
    • 我知道需要窗口管理然后它会有一个临时父级!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 2015-09-02
    • 2021-03-27
    • 2015-08-01
    相关资源
    最近更新 更多