1. Qt 控件的父子继承关系
在 Qt 中,继承自 QWidget
的类,通常会在构造函数中接收一个 parent
参数。
这个参数用于指定当前空间的父控件,从而建立控件间的父子关系。
当一个控件被设置为另一控件的子控件时,它会自动成为该父控件的一部分,且具备以下特性:
-
子控件会随着父控件,一起显示或隐藏;
-
子控件会被包含在父控件的几何布局中;
-
当父控件被删除时,所有的子控件会被自动删除,防止内存泄漏。
// .h
class SessionFriendArea : public QScrollArea
{
Q_OBJECT
public:
QWidget* container;
}
// .cpp
SessionFriendArea::SessionFriendArea(QWidget *parent)
: QScrollArea{
parent}
{
container = new QWidget();
this->setWidget(container);
}
在 SessionFriendItem
的构造函数中, parent
被传递给 QScrollArea
的构造函数 —— 让 QScrollArea
成为父控件的一部分,从而正确地管理其生命周期和位置。
在构造函数体中,创建 container
并设置为 this
的子控件(即 QScrollArea
的子控件):
container