ウィジェットがすでにsetupUi
"blessing"を受け取っていて、すべてのサブウィジェットを既に構築しているかどうかを知る必要があります。setupUiがすでに呼び出されているかどうかを知る方法
これには方法がありますか?または、これが以前に行われたかどうかをコードで追跡する必要がありますか? ありがとう
ウィジェットがすでにsetupUi
"blessing"を受け取っていて、すべてのサブウィジェットを既に構築しているかどうかを知る必要があります。setupUiがすでに呼び出されているかどうかを知る方法
これには方法がありますか?または、これが以前に行われたかどうかをコードで追跡する必要がありますか? ありがとう
ウィジェットが空である必要がありますか?そうでない場合は、作成を遅らせ、オブジェクトを作成すると同時にsetupUiを呼び出すことができます。ポインタが設定されているかどうかを確認することができます。
MyClass::MyClass() : m_ui(nullptr)
{}
MyClass::initialize()
{
if (m_ui == nullptr)
{
m_ui = new UiClass;
m_ui->setupUi(this);
}
// ...
}
setupUiが呼び出されたかどうかを知る必要がある理由は、使用する方法によって異なります。
関数を呼び出す前にチェックする何らかのグローバル変数か関数内のローカル静的変数を使って、自分で追跡することができます。または、あなたのためのチェックを処理するstd::call_once
を使用することができます。
これはとても簡単でした.Uiのものにポインタを使用したことはありません。初期化を避けるためにQPointerを使う方がいいかもしれない – bibi