首页 > 代码库 > 分割窗口QSplitter类---布局管理(一)
分割窗口QSplitter类---布局管理(一)
从今天开始Mayuyu要学习QT了,Mayuyu是一个很爱美的姑娘,所以为了能给设计出美观的图形界面,Mayuyu一定
会努力的!
今天Mayuyu要讲的是布局管理中的分割窗口类QSplitter,分割窗口,顾名思义就是把窗口分割成一个一个小块。
比如要实现一个简单的窗口,如下图:
这个窗体有3部分,那么写出如下代码:
#include "widget.h" #include <QApplication> #include <QSplitter> #include <QTextEdit> #include <QTextCodec> int main(int argc, char** argv) { QApplication a(argc, argv); QFont font("ZYSong18030",12); a.setFont(font); QSplitter *splitterMain = new QSplitter(Qt::Horizontal,0); QTextEdit *textLeft = new QTextEdit(QObject::tr("Left Widget"), splitterMain); textLeft->setAlignment(Qt::AlignCenter); QSplitter *splitterRight = new QSplitter(Qt::Vertical, splitterMain); splitterRight->setOpaqueResize(false); QTextEdit *textUp = new QTextEdit(QObject::tr("Top Widget"), splitterRight); textUp->setAlignment(Qt::AlignCenter); QTextEdit *textBottom = new QTextEdit(QObject::tr("Bottom Widget"), splitterRight); textBottom->setAlignment(Qt::AlignCenter); splitterMain->setStretchFactor(1,1); splitterMain->setWindowTitle(QObject::tr("Splitter")); splitterMain->show(); return a.exec(); }
现在Mayuyu就来逐行解释:
第11和第12行是用来设置字体的。
第13行新建了一个QSplitter类对象,作为主分割窗口,设定为水平窗口。
第14行新建一个QTextEdit类对象,并将其插入主分割窗口中。
第15行设置TextEdit中文字对齐方式,常用的对齐方式主要有5种:
(1)Qt::AlignLeft 左对齐
(2)Qt::AlignRight 右对齐
(3)Qt::AlignCenter 居中对齐(Qt::AlignHCenter为水平居中,Qt::AlignVCenter为垂直居中)
(4)Qt::AlignUp 文字与顶端对齐
(5)Qt::AlignBottom 文字与底部对齐
第16行新建一个QSplitter类对象,作为右分割窗口,设定此分割窗口为垂直分割窗口,并以主分割窗口为父窗口
,在QSplitter(args1,args2)中的第一个参数主要有两个值,分别是Qt::Horizontal或者Qt::Vertical,
分别表示水平分割和垂直分割。第二个参数表示在哪个父窗口内分割,没有父窗口则此参数为0。
第17行中的setOpaqueResize(false)方法用于设定分割窗口的分割条在拖拽时是否是实时更新显示,若为
true,表示更新显示,否则为false则在拖拽时只显示一条灰色的粗线条,当拖拽到位并释放鼠标后再显示分割
条,默认情况值为true。
第22行很重要,setStretchFactor(args1,args2)方法用于设定可伸缩性控件,第一个参数用于设定控件序
号,从0开始顺次编号,第二个参数为大于0的数,表示此控件为可伸缩性控件,也就是说当鼠标在拉动边框时,可
伸缩性框会跟着鼠标放大。
嗯,到了这里Mayuyu基本把QSplitter类的内容讲完,剩下的靠Mayuyu多理解了。