如何知道是否已调用setupUi

时间:2016-04-15 12:40:45

标签: c++ qt

我需要知道一个小部件是否已经收到setupUi “祝福”,如果它已经构建了所有子小部件。

有这方法吗?或者我应该在代码中跟踪之前是否已完成此操作? 感谢

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

MyClass::MyClass() : m_ui(nullptr) 
{}

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

这取决于你的用例,关于你为何/何时需要知道是否已经调用setupUi。