2016-04-15 156 views
1

我需要知道一个控件是否已经收到setupUi“祝福”以及它是否已经构建了所有的子控件。如何知道setupUi是否已经被调用

有没有这样的方法?或者我应该在代码中跟踪这是否以前完成? 谢谢

回答

1

您是否需要小部件为空?如果没有,你可以延迟它的创建,并且在你创建对象的同时总是调用setupUi,那么你可以检查指针是否已经设置。

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

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

这取决于你的用例,为什么/当你需要知道setupUi是否被调用。

+0

太容易了......从来没有用过指针为ui的东西。使用QPointer可能会更好,以避免初始化 – bibi

2

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