1

Qt でレイアウトのサンプル コードを読んでいたところ、Hboxlayout と VBoxlayout の次の 2 行が見つかりました。

    QVBoxLayout *vbox = new QVBoxLayout();
    QHBoxLayout *hbox = new QHBoxLayout(this);

違いがわかりません。最初のものではなく、後者のパラメーターとして送信される this ポインターがあるのはなぜですか?

this ポインタは実際に何を参照していますか?

4

1 に答える 1

1

最初のものではなく、後者のパラメーターとして送信される this ポインターがあるのはなぜですか?

両方のコンストラクターが存在します。 QHBoxLayoutおよびQVBoxLayoutを参照してください。

this ポインタは実際に何を参照していますか?

ポインターを取るバリアントを呼び出すと、このポインター (thisあなたの場合) は新しいオブジェクトの所有権を取得します。つまり、それ自体が削除されると、それも削除されます。

それ以外の場合は、自分でオブジェクトを削除する (または後で親を設定する) 必要があります。ボックス レイアウトの場合、上記のリンク先のドキュメントに記載されているように、この場合、レイアウトを別のレイアウトに追加する必要があります。

@Mat が述べたように、これは Qt の一般的な概念です。 QObject::Qbject(QObject* parent = 0)も参照してください。

于 2013-02-23T19:08:21.940 に答える