QSplitter 分裂器

最后更新于:2022-04-02 02:11:56

[TOC] ## 概述 1. 分裂器自身占据的大矩形四个边界线通常不能拖动拉大,只能拖动控件之间的手柄 使用 * 在设计器中 使用分裂器的方式是:选中已有的控件,然后点击上面工具栏的水平分裂器或垂直分裂器按钮 * 在代码中 ``` //比如 lay1 和 lay2 是已有的布局器,要添加到分裂器里 //分裂器 QSplitter *spl = new QSplitter(Qt::Horizontal, this); spl->setGeometry(0, 0, 400, 300); //用 wid1 包裹 lay1,添加到分裂器 QWidget *wid1 = new QWidget(this); wid1->setLayout( lay1 ); //设置 wid1 的布局器 spl->addWidget(wid1); //用 wid2 包裹 lay2,添加到分裂器 QWidget *wid2 = new QWidget(this); wid2->setLayout( lay2 ); //设置 wid2 的布局器 spl->addWidget(wid2); ``` ## 常用函数 ``` QSplitter(Qt::Orientation orientation, QWidget * parent = 0) void setOrientation(Qt::Orientation) void addWidget(QWidget * widget) // 向分裂器中添加控件 void insertWidget(int index, QWidget * widget) int count() const // 统计有几个控件 int indexOf(QWidget * widget) const // 控件的索引位置 QWidget * widget(int index) const // 某个索引的位置 void setHandleWidth(int) // 分裂器手柄的宽度 void setChildrenCollapsible(bool) // 分裂器压缩控件过小,会隐藏此控件,可通过此接口设置是否隐藏 void setCollapsible(int index, bool collapse) // 设置某个控件是否可折叠 bool isCollapsible(int index) const void splitterMoved(int pos, int index) //手柄拖动信号 QByteArray saveState() const // 获取分裂器的拖动状态,可写入QSetting s中 bool restoreState(const QByteArray & state) // 设置分裂状态 // 分裂器的保存状态在程序结束前,恢复状态在程序开始前 ```
';