【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();
}

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

时间: 2024-09-26 22:38:52

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

【Qt5开发及实例】8、各种对话框!!

1.标准文件对话框 就是点击这个按钮就会打开文件的对话框 具体的实现是: 头文件dialog.h: #include <QDialog> #include <QLineEdit> #include <QGridLayout> //网格布局 #include <QPushButton> #include <iostream> #include "inputdlg.h" #include "msgboxdlg.h&quo

【Qt5开发及实例】24、数据柱形图显示

数据柱形图显示 1.我们首先把这个这个视图的表格部分表示出来 mainwindow.h /** * 书本:[Qt5开发及实例] * 功能:数据柱形图显示,这个类是表格显示 * 文件:mainwindow.h * 时间:2015年1月28日18:50:54 * 作者:cutter_point */ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QStandardItemModel>

【Qt5开发及实例】18、图形修饰小工具

图形修饰小工具 无力吐槽,这是我第三遍写这个了,到底是个什么意思???我只要一贴代码,浏览器直接崩溃,呵呵了,我也是,我现在只要写完一段字我就保存,尼玛在掉我就不写了,写到word里面,再贴上来. 效果 左边图形展示界面 paintarea.h /** * 书本:[Qt5开发及实例] * 功能:实现绘画各种图形 * 文件:paintarea.h * 时间:2015年1月21日16:59:25 * 作者:cutter_point */ #ifndef PAINTAREA_H #define PAI

Qt5主窗体程序: 文本编辑器的实现(Qt5开发及实例)

下面的程序出自<Qt5开发及实例>陆文周. 效果图: 程序是一个文本编辑器的实例,主界面如下: 程序中的源文件和头文件: 源代码: 文件main.cpp的源代码: #include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); QFont font("楷体",15); a.setFont

【Qt5开发及实例】28、获取本机网络信息

networkinformation.h /** * 书本:[Qt5开发及实例] * 功能:获取本机网络信息 * 文件:networkinformation.h * 时间:2015年2月5日14:51:33 * 作者:cutter_point */ #ifndef NETWORKINFORMATION_H #define NETWORKINFORMATION_H #include <QWidget> #include <QLabel> #include <QLineEdit&

【Qt5开发及实例】29、实现服务器端的编程,UDP协议

udpserver.h /** * 书本:[Qt5开发及实例] * 功能:实现服务器端的编程 * 文件:udpserver.h * 时间:2015年2月5日21:05:21 * 作者:cutter_point */ #ifndef UDPSERVER_H #define UDPSERVER_H #include <QDialog> #include <QLabel> #include <QLineEdit> #include <QPushButton> #i

【Qt5开发及实例】10、关于进度条的显示

平常我们下载东西总会有一个显示下载了多少的进度条,我们今天来实现一下. 这里有两种显示方式 可以选择,第一个是用了 QProgressBar控件,第二个是用了QProgressDialog控件 progressdlg.h /** * 书本:[Qt5开发及实例] * 功能:为了实现进度条的显示 * 文件:progressdlg.h * 时间:2015年1月2日15:27:10 * 作者:cutter_point */ #ifndef PROGRESSDLG_H #define PROGRESSDL

【Qt5开发及实例】21、导弹地图演示

导弹地图演示 这个导弹地图是一个中国的地图: 好的废话不多直接上代码(里面有大量注释,不怕你看不懂) main.cpp /** * 书本:[Qt5开发及实例] * 功能:实现地图的浏览器 * 文件:main.cpp * 时间:2015年1月26日18:57:55 * 作者:cutter_point */ #include "mapwidget.h" #include <QApplication> #include <QFont> int main(int arg

【Qt5开发及实例】9、一个QQ界面

这个程序主要是为了学习一下工具盒类,这里使用了3个工具盒然后添加到整个界面上, 分别是:好友(good friend), 陌生人(do not remember), 黑名单(black items) 哈哈,原谅我这不咋地的英语,懂我就好. 实现图: 代码: drawer.h /** * 书本:[Qt5开发及实例] * 功能:实现一个自己的QQ界面 * 文件:drawer.cpp * 时间:2015年1月2日11:01:12 * 作者:cutter_point */ #ifndef DRAWER_