Qt5
最简单的分割窗体
- #include <QApplication>
- #include <QLabel>
- #include <QSplitter>
- int main(int argc, char *argv[])
- {
- QApplication app(argc, argv);
- QSplitter * mainSplitter = new QSplitter(Qt::Horizontal);
- mainSplitter->setHandleWidth(10);
- mainSplitter->setStyleSheet("QSplitter::handle { background-color: black }"); //设置分界线的样式
- QLabel *label = new QLabel(QObject::tr("TestA"));
- QLabel *label2 = new QLabel(QObject::tr("TestB"));
- mainSplitter->addWidget(label2);
- mainSplitter->addWidget(label);
- mainSplitter->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
- mainSplitter->show();
- return app.exec();
- }
结果截图如下

竖向排列子窗口
- #include <QApplication>
- #include <QLabel>
- #include <QSplitter>
- int main(int argc, char *argv[])
- {
- QApplication app(argc, argv);
- QSplitter * mainSplitter = new QSplitter(Qt::Horizontal);
- mainSplitter->setHandleWidth(10);
- mainSplitter->setStyleSheet("QSplitter::handle { background-color: black }"); //设置分界线的样式
- QLabel *label = new QLabel(QObject::tr("TestA"));
- QLabel *label2 = new QLabel(QObject::tr("TestB"));
- mainSplitter->addWidget(label2);
- mainSplitter->addWidget(label);
- mainSplitter->setOrientation(Qt::Vertical);
- mainSplitter->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
- mainSplitter->show();
- return app.exec();
- }
结果截图如下

http://blog.csdn.net/a649518776/article/details/6633857
转
- #include <QApplication>
- #include <QSplitter>
- #include <QTextCodec>
- #include <QTextEdit>
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- //设置字体
- QFont font("ZYSong18030",12);
- a.setFont(font);
- //The QTextCodec class provides conversions between text encodings
- //Returns a pointer to the codec most suitable for this locale.On Windows, the codec will be based on a system locale.
- QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
- //主splitter,以下填充text和子splitter
- //QSplitter::QSplitter ( Qt::Orientation orientation, QWidget * parent = 0 )
- 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);
- //开始填充右边的splitter,放上两个text
- QTextEdit *textTop=new QTextEdit(QObject::tr("Right Top Widget"),splitterRight);
- textTop->setAlignment(Qt::AlignCenter);
- QTextEdit *textBottom=new QTextEdit(QObject::tr("Right Bottom Widget"),splitterRight);
- textBottom->setAlignment(Qt::AlignCenter);
- //设置主splitter
- splitterMain->setStretchFactor(1,1);
- splitterMain->setWindowTitle(QObject::tr("Splitter"));
- splitterMain->show();
- return a.exec();
- }
解析:
1.QSplitter的构造方法:
QSplitter *splitterMain=new QSplitter(Qt::Horizontal,0);
第一个参数通过Qt::Horizontal 和 Qt::Vertical来设定为水平分割或垂直分割。第二个设定0代表是主窗口,无父窗口。
不过子splitter设置的
new QSplitter(Qt::Vertical,splitterMain);
代表主窗口是splitterMain。则子splitter就被添加到splitterMain中。
添加时为从左至右(或从上至下)添加;
2.添加QTextEdit控件。
QTextEdit *textLeft=new QTextEdit(QObject::tr("Left Widget"),splitterMain);
第一个参数设置文本内容,第二个参数设置主窗体。
3.设置拖动时是否实时更新
splitterRight->setOpaqueResize(false);
false为不实时更新——在拖动时候只显示一条灰色的线条,在拖动到位并释放鼠标后再显示分割条。默认为true——实时更新。

4.设定可伸缩控件:
splitterMain->setStretchFactor(1,1);
第一个参数代表控件序号,第一个序号为0.后面参数0代表不可伸缩,非0代表可伸缩。
这里设置右边的可伸缩。当拉伸整个窗口时候,左边保持原来宽度。

拉伸后,我们发现左边的宽度不变
Qt5的更多相关文章
- QT5利用chromium内核与HTML页面交互
在QT5.4之前,做QT开发浏览器只能选择QWebkit,但是有过使用的都会发现,这个webkit不是出奇的慢,简直是慢的令人发指,Release模式下还行,debug下你就无语了,但是webkit毕 ...
- qt5中信号和槽的新语法
qt5中的连接 有下列几种方式可以连接到信号上 旧语法 qt5将继续支持旧的语法去连接,在QObject对象上定义信号和槽函数,及任何继承QObjec的对象(包含QWidget). connect(s ...
- Ubuntu在wps-office等qt5程序下不能切换中文fcitx输入法的问题
经检查,是缺了fcitx-qt的包.比如qt5的程序,需要一个叫fcitx-libs-qt5的包. 如果您在基于qt的程序下不能使用基于fcitx的中文输入法,请检查以下包是否已安装: sudo ap ...
- qt5中文代码编码编译问题
qt中文代码用vs2010编译问题解决 总结说就是qt5默认UTF8不支持微软默认的ANSI(GB2312/GBK).解决办法是把中文字符串全部用 QString::fromLocal8Bit() 封 ...
- VS2010+Qt5.4.0 环境搭建(离线安装)
原创作者:http://blog.csdn.net/solomon1558/article/details/44084969 前言 因项目需要Qt开发GUI,我根据网上资料及自己的经验整理了搭建vs2 ...
- qt5.5程序打包发布以及依赖【转】
玩qt5也有一段时间了,惭愧的是一直没有好好的发布过程序,因为写的都是小程序没啥需要用到发布,而且qt也说不上很熟悉,本来打算到基本掌握qt之后再来研究研究怎么打包程序,最近晚上的空闲时间多了,闲着也 ...
- Qt5.5.1编译出来的程序出现libgcc_s_dw2-1.dll的解决方案
问题如图: 输入"myudp2016.exe 1 " 后出现 这是因为没有在系统环境变量path里加上相关路径,我们添加如下路径: 比如说WIN7系统-开始-计算机-右键-属性- ...
- ubuntu 16.04 + N驱动安装 +CUDA+Qt5 + opencv
Nvidia driver installation(after download XX.run installation file) 1. ctrl+Alt+F1 //go to virtual ...
- Qt5中的信号槽
Qt4中的信号槽 Qt4中的信号槽是通过SIGNAL,SLOT两个宏,将参数转换成字符串.Qt编译前,会从源码的头文件中提取由signal和slot声明的信号和槽的函数, 将其组成一张信号和槽对应的字 ...
- qt5.4.0编译错误
error1: 进程"C:\Qt\Qt5.4.0\Tools\QtCreator\bin\jom.exe"退出,退出代码 2 solution:去工具->选项->构建和 ...
随机推荐
- 23种设计模式之命令模式(Command)
命令模式是一种对象的行为型模式,类似于传统程序设计方法中的回调机制,它将一个请求封装为一个对象,从而使得可用不同的请求对客户进行参数化:对请求排队或者记录请求日志,以及支持可撤销的操作.命令模式是对命 ...
- IOS开发 REST请求 ASIHTTPRequest用法
ASIHTTPRequest类库简介和使用说明 官方网站: http://allseeing-i.com/ASIHTTPRequest/ .可以从上面下载到最新源码,以及获取到相关的资料. 使用iOS ...
- Thinkphp框架下(同服务器下)不同二级域名之间session互通共享设置
在Thinkphp框架下根目录打开index.php 在头部加入如下代码即可: //入口文件 define('DOMAIN','abc.com');//abc.com换成自己的跟域名 //以下两行是为 ...
- PHP将富文本内容去除各类样式图片等只保留txt文本内容(作用于SEO的description)
1.从数据库读取富文本内容样式如下: <p style=";text-indent: 0;padding: 0;line-height: 26px"><span ...
- springMVC 几种页面跳转方式
今天主要写一下响应界面跳转的几种方式 1.在注解的方式中 1.1通过HttpServletResponse的API直接输出(不需要配置渲染器) controller类的主要代码 @Controller ...
- ubuntu部署nginx
先更新本机内置的程序. sudo apt-get updatesudo apt-get upgrade再判断系统是否内置了add-apt-repository命令,如果没有执行下列命令安装 sudo ...
- Deplearning.AI-吴恩达【中文课后作业】
[吴恩达课后作业目录] 课程 周数 名称 类型 语言 地址 课程1 - 神经网络和深度学习 第1周 深度学习简介 测验 中英 传送门 无编程作业 编程作业 —— —— 第2周 神经网络基础 测验 中英 ...
- 2.3AutoEncoder
AutoEncoder是包含一个压缩和解压缩的过程,属于一种无监督学习的降维技术. 神经网络接受大量信息,有时候接受的数据达到上千万,可以通过压缩 提取原图片最具有代表性的信息,压缩输入的信息量,在将 ...
- LINUX常用命令大全归纳篇
su su命令是最基本的命令之一,常用于不同用户间切换. 例如,如果登录为 user1,要切换为user2,只要用如下命令: $su user2 然后系统提示输入user2口令,输入正确的口令之后就可 ...
- sass,less的安装及sass的教程
装scss(window) 首相安装ruby http://www.sasschina.com/install/ scss转译css http://www.cnblogs.com/52css/arch ...