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
,我們可以讓用戶自由地調整子部件的大小和布局,從而實現靈活和可定制的界面布局。