发布时间:2023-10-23 08:30
QT之切分窗口
QSplitter就是一个可以包含一些其他窗口部件的部件。在切分窗口QSplitter中的这些窗口部件会通过切分条Splitter handle而分割开来。用户可以通过拖动这些分割条改变切分条中子窗口的大小。QSplitter中的子窗口部件将会自动按照创建时的顺序一个挨着一个的放在一起,并且以切分窗口分割条来分割相邻的窗口。下面是代码实例
#include}
效果如下:
可以随意改变各个窗口大小:
另外下面演示下使用多个splitter进行水平或者垂直方向上的嵌套。本代码适用于《C++ GUI QT4》
mailclient.cpp. 其界面布局部分代码如下
//窗口布局
rightSplitter = new QSplitter(Qt::Vertical);
rightSplitter->addWidget(messagesTreeWidget); //在右窗口中添加一个邮件列表
rightSplitter->addWidget(textEdit); //显示文本邮件
rightSplitter->setStretchFactor(1, 1); //保证textEdit伸展到多余的空间
mainSplitter = new QSplitter(Qt::Horizontal);
mainSplitter->addWidget(foldersTreeWidget);
mainSplitter->addWidget(rightSplitter);
mainSplitter->setStretchFactor(1, 1); //使用两个setStretchFactor保证了把多余的额外空间都留给textEdit
setCentralWidget(mainSplitter);
setWindowTitle(tr("Mail Client"));
效果如下图: