分割窗口的理解:
对于分割窗口的理解,刚开始的时候理解起来感觉有点懵,后来尝试换一种理解方式就感觉一片开朗起来了。
首先对于分割窗口这个,我将它理解为架子,就是我们生活中的物架子,帮我们可以存放东西的架子。我们的架子可以有垂直的、水平的的架子。生活中的架子是有大小限制的,而我们的的架子是一个可以扩展的,而我们将内容的摆放决定我们的架子的格式的样子。我们可以通过调节,将我们的东西摆放成我们想要的样子。
那么我们来看一个简单的的例子吧!
#include <QVBoxLayout>
#include <QSplitter>
#include <QTextEdit>
#pragma execution_character_set("utf-8")
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{
QSplitter *Splitter = new QSplitter(Qt::Vertical);
QTextEdit *topEdit = new QTextEdit(tr("最上层"));//上边窗口
topEdit->setAlignment(Qt::AlignCenter);//文字显示方式
QTextEdit *Edit = new QTextEdit(tr("中间层"));//上边窗口
Edit->setAlignment(Qt::AlignCenter);//文字显示方式
QTextEdit *bottmEdit = new QTextEdit(tr("最低层"));//下边窗口
bottmEdit->setAlignment(Qt::AlignCenter);//文字显示方式
//把窗口添加到分割窗口里边
Splitter->addWidget(topEdit);//将我们的内容添加到架子上 按照从上往下放
Splitter->addWidget(Edit);
Splitter->addWidget(bottmEdit);
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(Splitter);
setLayout(layout);
}
这是我们最简单的架子存放物品,从上往下存放,存放了三层。
那么我们可以来将架子进行一点点的改变,将我们的最上层的内容水平方向一分为二。来看我们的例子:
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{
QSplitter *Splitter = new QSplitter(Qt::Vertical);
QSplitter *topSplitter = new QSplitter(Qt::Horizontal);
QTextEdit *topEditl = new QTextEdit(tr("最上层左边"));//上边窗口
topEditl->setAlignment(Qt::AlignCenter);//文字显示方式
QTextEdit *topEditr = new QTextEdit(tr("最上层右边"));//上边窗口
topEditr->setAlignment(Qt::AlignCenter);//文字显示方式
topSplitter->addWidget(topEditl);
topSplitter->addWidget(topEditr);
QTextEdit *Edit = new QTextEdit(tr("中间层"));//上边窗口
Edit->setAlignment(Qt::AlignCenter);//文字显示方式
QTextEdit *bottmEdit = new QTextEdit(tr("最低层"));//下边窗口
bottmEdit->setAlignment(Qt::AlignCenter);//文字显示方式
//把窗口添加到分割窗口里边
Splitter->addWidget(topSplitter);//将我们的内容添加到架子上 按照从上往下放
Splitter->addWidget(Edit);
Splitter->addWidget(bottmEdit);
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(Splitter);
setLayout(layout);
}
1号的架子在我们2号架子里边,当我们需要存放小架子的是我们优先把小架子摆弄好,再将我们的小架子方在我们的大架子中,从里往外,这样思路会清晰很多。当然也不一定,当我们比较熟悉的时候,怎样都可以。