如何知道setupUi是否已被调用

How to know if setupUi has already been called

本文关键字:调用 是否 何知道 setupUi      更新时间:2023-10-16

我需要知道一个小部件是否已经收到setupUi"祝福",以及它是否已经构建了所有的子小部件。

有办法吗?或者我应该在代码中跟踪以前是否已经这样做过?感谢

您可以自己跟踪它,可以使用在调用函数之前检查的某种全局变量,也可以通过函数内部的局部静态变量。或者您可以使用std::call_once,它将为您处理检查。

您需要清空小部件吗
如果没有,您可以延迟它的创建,并始终在创建对象的同时调用setupUi,然后您可以检查指针是否已设置。

MyClass::MyClass() : m_ui(nullptr) 
{}
MyClass::initialize()
{
    if (m_ui == nullptr)
    {
        m_ui = new UiClass;
        m_ui->setupUi(this);
    }
    // ...
}

这取决于您的用例,取决于您需要知道是否调用了setupUi的原因/时间。