QSplitter
QSplitter
是 Qt 框架提供的一个小部件(widget),用于在用户界面中创建可拖动的分割窗口,允许用户调整子部件的大小和布局。它可以将父部件分割为多个可调整大小的子部件,使用户能够自定义界面的布局和大小。
QSplitter
提供了以下特性和常用方法:
- 可以通过调用
addWidget(QWidget *widget)
将子部件添加到QSplitter
中。 - 使用
setOrientation(Qt::Orientation orientation)
方法可以设置分割窗口的方向,可以是水平方向 (Qt::Horizontal
) 或垂直方向 (Qt::Vertical
)。 - 通过调用
handleWidth()
方法可以获取或设置分隔条(用于调整大小的可拖动区域)的宽度。 - 可以使用
setSizes(const QList<int> &sizes)
方法设置子部件的初始大小。sizes
参数是一个整数列表,表示每个子部件的大小。 - 通过调用
sizes()
方法可以获取当前子部件的大小。 - 可以使用
setCollapsible(int index, bool collapsible)
方法设置指定索引的子部件是否可折叠。 - 通过调用
collapsible(int index)
方法可以检查指定索引的子部件是否可折叠。 - 可以使用
setStretchFactor(int index, int stretch)
方法设置指定索引的子部件的拉伸因子,决定了子部件在可用空间中的相对大小。
下面是一个简单示例,演示如何使用 QSplitter
创建一个水平分割窗口:
// 创建 QSplitter 对象
QSplitter *splitter = new QSplitter(this);// 创建两个子部件
QWidget *widget1 = new QWidget();
QWidget *widget2 = new QWidget();// 将子部件添加到 splitter 中
splitter->addWidget(widget1);
splitter->addWidget(widget2);// 设置分割窗口的方向为水平方向
splitter->setOrientation(Qt::Horizontal);// 显示 splitter
splitter->show();
在这个示例中,我们首先创建了一个 QSplitter
对象 splitter
。然后,我们创建了两个子部件 widget1
和 widget2
。通过调用 addWidget()
方法,我们将这两个子部件添加到 splitter
中。
接下来,通过调用 setOrientation()
方法,我们将分割窗口的方向设置为水平方向 (Qt::Horizontal
)。
最后,我们调用 show()
方法显示 splitter
。
通过使用 QSplitter
,我们可以让用户自由地调整子部件的大小和布局,从而实现灵活和可定制的界面布局。