【Qt5开发及实例】3、布局管理之分割窗口QSplitter

首先看看目标效果




代码:


#include "mainwindow.h"
#include <QApplication>
#include <QTextEdit>
#include <QSplitter>
#include <QTextCodec>

int main(int argc, char *argv[])
{
  QApplication a(argc, argv);

  QFont font("ZYSong18030", 12);
  a.setFont(font);  //设定字体的类型

  //主分割窗口
  //第二个设定0代表是主窗口,无父窗口
  QSplitter *splitterMain = new QSplitter(Qt::Horizontal, 0); //水平分割主窗口,这个吧主窗口分为平行的两个窗口




  //自动按从左到右的顺序修改
  QTextEdit *textLeft = new QTextEdit(QObject::tr("Left Widget"), splitterMain);  //新建的一个QTextEidt对象填入splitterMain里面
  textLeft->setAlignment(Qt::AlignCenter);  //文字居中放置  ,把左边的设置完了之后



  //右部分分割窗口
  //1,新创建一个分割加到主窗口上
  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(0, 0);
  splitterMain->setWindowTitle(QObject::tr("Splitter"));
  splitterMain->show();


  //这个是按程序的排序方向制动设定为第一个列或者行的

//  MainWindow w;
//  w.show();

  return a.exec();
}

我们可以做点小改动,使他变成这个样的,我们就更好理解QSplitter了



代码:

#include "mainwindow.h"
#include <QApplication>
#include <QTextEdit>
#include <QSplitter>
#include <QTextCodec>

int main(int argc, char *argv[])
{
  QApplication a(argc, argv);

  QFont font("ZYSong18030", 12);
  a.setFont(font);  //设定字体的类型

  //主分割窗口
  //第二个设定0代表是主窗口,无父窗口
  QSplitter *splitterMain = new QSplitter(Qt::Horizontal, 0); //水平分割主窗口,这个吧主窗口分为平行的两个窗口



  QSplitter *splitterRight2 = new QSplitter(Qt::Vertical, splitterMain);   //垂直分割
  splitterRight2->setOpaqueResize(true);
  QTextEdit *textLeft0 = new QTextEdit(QObject::tr("Left Widget"), splitterRight2);  //新建的一个QTextEidt对象填入splitterMain里面
  textLeft0->setAlignment(Qt::AlignCenter);  //文字居中放置  ,把左边的设置完了之后

  QTextEdit *textLeft00 = new QTextEdit(QObject::tr("Left333 Widget"), splitterRight2);  //新建的一个QTextEidt对象填入splitterMain里面
  textLeft00->setAlignment(Qt::AlignCenter);  //文字居中放置  ,把左边的设置完了之后

  QTextEdit *textLeft000 = new QTextEdit(QObject::tr("Left333 Widget"), splitterRight2);  //新建的一个QTextEidt对象填入splitterMain里面
  textLeft000->setAlignment(Qt::AlignCenter);  //文字居中放置  ,把左边的设置完了之后


  //自动按从左到右的顺序修改
  QTextEdit *textLeft = new QTextEdit(QObject::tr("Left Widget"), splitterMain);  //新建的一个QTextEidt对象填入splitterMain里面
  textLeft->setAlignment(Qt::AlignCenter);  //文字居中放置  ,把左边的设置完了之后

  QTextEdit *textLeft22 = new QTextEdit(QObject::tr("Left22 Widget"), splitterMain);  //新建的一个QTextEidt对象填入splitterMain里面
  textLeft22->setAlignment(Qt::AlignCenter);  //文字居中放置  ,把左边的设置完了之后


  //右部分分割窗口
  //1,新创建一个分割加到主窗口上
  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(0, 0);
  splitterMain->setWindowTitle(QObject::tr("Splitter"));
  splitterMain->show();


  //这个是按程序的排序方向制动设定为第一个列或者行的

//  MainWindow w;
//  w.show();

  return a.exec();
}

这样大家就应该能明白他们之间的差别了吧!




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值