QSplitter 自我总结

①、QSplitter(QWidget* parent = Q_NULLPTR); //构造函数
QSplitter(Qt::Orientation orientation , QWidget* parent = Q_NULLPTR);

②、void addWidget(QWidget* widget);
void insertWidget(int index,QWidget* widget);
把widget添加到末尾或插入到指定索引indix处,若widget已在分离器中,则将其移至新位置。注意:分离器会获得部件的所有权。

③、void setCollapsible(int index, bool collapse);
bool isCollapsible(int index) const;
设置或返回索引index处的子部件是否可折叠,要设置所有子部件都可折叠,请设置childrenCollapsible属性。

④、void setStretchFactor(int index, int stretch); //设置索引为index的子部件的拉伸因子。

⑤、void setSizes(const QList& list);
QList sizes() const;
 使用列表list设置子部件的大小(以像素为单位),其规则为,若分离器是水平的,则使用列表中的值按从左到右的顺序设置每个子部件的宽度。若分离器是垂直的,则使用列表中的值按从上到下的顺序设置子部件的高度。若列表的值过少,则结果未定义,但程序仍能运行。
 若为子部件指定的大小为0,则该子部件将不可见,若指定的值小于子部件的最小大小,则使用最小大小提示的值替换。
 注意:分离器的总体大小不会受到影响,也就是说分离器的大小不会改变,仍是之前那么大,因此,当使用该函数为所有的子部件设置的值小于分离器总体的大小时,则其余多余的空间会根据设置的子部件大小的相对权重,在各子部件之间分配。
 示例:假设分离器为垂直的,且高度为150,共有3个子部件,则
QList q={30,30,30}; ps->setSizes(q);
设置之后各子部件的高度分别为50,50,50,而不是30,30,30,因为分离器剩余的空间按子部件大小的相对权重,分配给了各个子部件。

⑥、QByteArray saveState() const;
bool restoreState(const QByteArray& sate);
以上函数用于保存和恢复分离器的状态,通常应与QSettings类一起使用,也可单独使用,可以使用这两个函数来存储或恢复分离器的默认状态。

⑦、int count() const; //返回分离器中子部件的数量。

⑧、int indexOf(QWidget* widget) const; //返回widget在分离器中的索引,该函数也可用于分界线。

⑨、QWidget* widget(int index) const; //返回索引index处的子部件。

⑩、QWidget* replaceWidget(int index, QWidget* widget); //qt5.9
把索引index处的子部件替换为widget,若index有效,且widget不是分离器的子部件,则返回被替换掉的子部件,否则返回null,而不会进行替换,新插入的子部件会继承被替换的子部件的属性(比如大小、可折叠装态等)。注意:widget可能不会被立即设置,需在接收到适到的事件之后才会被设置。

⑪、void getRange(int index, int min, int max) const;
返回索引为index的分界线的有效范围,并存储在
min和
max中,即获取分界线可以调整大小的范围。

⑫、QSplitterHandle* handle(int index) const; //返回索引index处的分界线。

⑬、void refresh(); //更新分离器的状态,通常不需要调用这个函数。

⑭、QSplitterHandle* createHandle(); //虚拟的,受保护的。
把返回的分界线作为分离器的分界线,该函数可在子类中重新实现,以提供自定义的分界线。

⑮、void childEvent(QChildEvent* c); //虚拟的,受保护的。QObject::childEvent()的重新实现
当子部件已被插入或删除时产生该事件。

⑯、void moveSplitter(int pos, int index); //受保护的
把索引为index的分界线的左侧(或顶边),尽可能的移至位置pos处,pos是距离分离器左侧或顶边的距离。注:对于从右到左的语言,pos是距离分离器右侧的距离。

⑰、void setRubberBand(int pos); //受保护的
在位置pos处显示橡皮筋,若pos为负数,则移除橡
皮筋。当分离器不是动态调整,用户移动分界线时,看到
的那根线条就是橡皮筋,效果见图5-40。

⑱、void splitterMoved(int pos, int index); //信号
当索引为index的分界线移至位置pos时,发送此信号。

©️2020 CSDN 皮肤主题: 岁月 设计师:pinMode 返回首页