Qt でレイアウトのサンプル コードを読んでいたところ、Hboxlayout と VBoxlayout の次の 2 行が見つかりました。
QVBoxLayout *vbox = new QVBoxLayout();
QHBoxLayout *hbox = new QHBoxLayout(this);
違いがわかりません。最初のものではなく、後者のパラメーターとして送信される this ポインターがあるのはなぜですか?
this ポインタは実際に何を参照していますか?
最初のものではなく、後者のパラメーターとして送信される this ポインターがあるのはなぜですか?
両方のコンストラクターが存在します。 QHBoxLayoutおよびQVBoxLayoutを参照してください。
this ポインタは実際に何を参照していますか?
ポインターを取るバリアントを呼び出すと、このポインター (this
あなたの場合) は新しいオブジェクトの所有権を取得します。つまり、それ自体が削除されると、それも削除されます。
それ以外の場合は、自分でオブジェクトを削除する (または後で親を設定する) 必要があります。ボックス レイアウトの場合、上記のリンク先のドキュメントに記載されているように、この場合、レイアウトを別のレイアウトに追加する必要があります。
@Mat が述べたように、これは Qt の一般的な概念です。 QObject::Qbject(QObject* parent = 0)も参照してください。