QSplitter类是Qt中用于分割窗口的控件,可以将一个窗口水平或垂直地分割成两个或多个子窗口,并且可以拖动调整子窗口的大小。QSplitter类继承自QWidget类,具有QWidget类的所有属性和方法。
QSplitter类的常用方法有:
addWidget(QWidget *widget):向分割窗口中添加一个子窗口
setOrientation(Qt::Orientation orientation):设置分割窗口的方向,可以为Qt::Horizontal(水平)或Qt::Vertical(垂直)
setStretchFactor(int index, int stretch):设置指定位置的子窗口的伸展因子,可以根据比例来调整子窗口的大小
下面给出一个简单的示例代码,演示如何使用QSplitter类创建一个水平分割窗口,并向其中添加两个子窗口:
#include <QApplication>
#include <QSplitter>
#include <QLabel>
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
QSplitter *splitter = new QSplitter(Qt::Horizontal); // 创建一个水平分割窗口
QLabel *label1 = new QLabel("Left panel", splitter); // 向分割窗口中添加子窗口1
QLabel *label2 = new QLabel("Right panel", splitter); // 向分割窗口中添加子窗口2
splitter->setStretchFactor(0, 1); // 设置子窗口1的伸展因子为1
splitter->setStretchFactor(1, 2); // 设置子窗口2的伸展因子为2
splitter->show(); // 显示分割窗口
return a.exec();
}
在上面的代码中,首先创建了一个QSplitter对象,设置其方向为Qt::Horizontal。然后向分割窗口中添加了两个QLabel对象作为子窗口,分别为”Left panel”和”Right panel”。通过调用setStretchFactor方法来设置子窗口的伸展因子,指定子窗口在水平方向上的比例关系。最后显示分割窗口并启动应用程序。