Qt学习之QSplitter分割窗口
2016-03-17 16:50
375 查看
在Qt开发中,QSplitter是比较常用到的,也就是分割窗口。
并且窗口分割处也就是QSplitter的handle是可以随意拖动的。
这样,每个窗口的大小就可以按照自己的需要进行调整。
QSplitter可以容纳其他Widget,具有布局一样的特性,但是又可以动态调整,
可以说是动态布局特性,其内部的Widget可以自由伸缩。
QSplitter有两种:垂直和水平。
然后实现垂直窗口分割:
先水平分割,再垂直分割:
先垂直分割,再水平分割:
void setHandleWidth(int)可以用来设置把手的宽度。
本文地址:/article/4274347.html
源码下载:http://download.csdn.net/detail/u011417605/9464654
交流QQ:1245178753
并且窗口分割处也就是QSplitter的handle是可以随意拖动的。
这样,每个窗口的大小就可以按照自己的需要进行调整。
QSplitter可以容纳其他Widget,具有布局一样的特性,但是又可以动态调整,
可以说是动态布局特性,其内部的Widget可以自由伸缩。
QSplitter有两种:垂直和水平。
enum Orientation { Horizontal = 0x1, Vertical = 0x2 };先实现水平窗口分割,内部QTextEdit可以随分隔条移动而自由伸缩:
#include <QtWidgets/QApplication> #include <QHBoxLayout> #include <QSplitter> #include <QTextEdit> int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget widget; QHBoxLayout *pHBox = new QHBoxLayout(&widget); QSplitter *pSplitter = new QSplitter(Qt::Orientation::Horizontal, &widget);//水平 pSplitter->setStyleSheet("QSplitter:handle{background-color:grey}"); QTextEdit *pEdit1 = new QTextEdit(&widget); QTextEdit *pEdit2 = new QTextEdit(&widget); pEdit1->setText("Left"); pEdit2->setText("Right"); pSplitter->addWidget(pEdit1); pSplitter->addWidget(pEdit2); pHBox->addWidget(pSplitter); widget.show(); return a.exec(); }效果如下:
然后实现垂直窗口分割:
#include <QtWidgets/QApplication> #include <QHBoxLayout> #include <QSplitter> #include <QTextEdit> int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget widget; QHBoxLayout *pHBox = new QHBoxLayout(&widget); QSplitter *pSplitter = new QSplitter(Qt::Orientation::Vertical, &widget);//水平 pSplitter->setStyleSheet("QSplitter:handle{background-color:grey}"); QTextEdit *pEdit1 = new QTextEdit(&widget); QTextEdit *pEdit2 = new QTextEdit(&widget); pEdit1->setText("Top"); pEdit2->setText("Bottom"); pSplitter->addWidget(pEdit1); pSplitter->addWidget(pEdit2); pHBox->addWidget(pSplitter); widget.show(); return a.exec(); }
先水平分割,再垂直分割:
#include <QHBoxLayout> #include <QSplitter> #include <QTextEdit> int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget widget; /***3.先水平,后垂直****/ QHBoxLayout *pHBox = new QHBoxLayout(&widget); QSplitter *pSplitter = new QSplitter(Qt::Orientation::Horizontal, &widget);//水平 pSplitter->setStyleSheet("QSplitter:handle{background-color:grey}"); QTextEdit *pEdit1 = new QTextEdit(&widget); QSplitter *pSplitterV = new QSplitter(Qt::Orientation::Vertical, &widget);//垂直 QTextEdit *pEdit2 = new QTextEdit(&widget); QTextEdit *pEdit3 = new QTextEdit(&widget); pEdit1->setText("Left"); pEdit2->setText("RightTop"); pEdit3->setText("RightBottom"); pSplitterV->addWidget(pEdit2); pSplitterV->addWidget(pEdit3); pSplitter->addWidget(pEdit1); pSplitter->addWidget(pSplitterV); pHBox->addWidget(pSplitter); widget.show(); return a.exec(); }
先垂直分割,再水平分割:
#include <QtWidgets/QApplication> #include <QHBoxLayout> #include <QSplitter> #include <QTextEdit> int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget widget; /***4.先垂直,后水平****/ QHBoxLayout *pHBox = new QHBoxLayout(&widget); QSplitter *pSplitter = new QSplitter(Qt::Orientation::Vertical, &widget);//水平 pSplitter->setStyleSheet("QSplitter:handle{background-color:grey}"); QTextEdit *pEdit1 = new QTextEdit(&widget); QSplitter *pSplitterV = new QSplitter(Qt::Orientation::Horizontal, &widget);//垂直 QTextEdit *pEdit2 = new QTextEdit(&widget); QTextEdit *pEdit3 = new QTextEdit(&widget); pEdit1->setText("Top"); pEdit2->setText("BottomLeft"); pEdit3->setText("BottomRight"); pSplitterV->addWidget(pEdit2); pSplitterV->addWidget(pEdit3); pSplitter->addWidget(pEdit1); pSplitter->addWidget(pSplitterV); pHBox->addWidget(pSplitter); widget.show(); widget.show(); return a.exec(); }
void setHandleWidth(int)可以用来设置把手的宽度。
本文地址:/article/4274347.html
源码下载:http://download.csdn.net/detail/u011417605/9464654
交流QQ:1245178753
相关文章推荐
- Qt串口通信接收数据不完整的解决方法
- Qt 错误总结
- Qt5.0解析JSON
- QML中的state 状态
- QT连接多种数据库f方法及测试
- Qt for Windows:Qt 5.6.0 MinGW 静态编译版本制作
- QT中的QPainter类
- vs2013+Qt5.5.1+opencv2.4.11配置
- Qt使用教程之指定编辑器设置
- Kithara RTS进程与Qt应用程序间通信(共享内存)
- mac qt 注意事项
- [Qt]Problem:the Qt platform plugin "windows"
- QT的Paint 系统
- Qt Model View 框架
- QT---Winsocket获取网关(Gateway) 主机IP等信息
- qt Qcompleter自动补全类
- [NSIS]NSIS——Qt程序发布工具
- Qt5之坐标系统
- QT学习之路————QT窗体去掉标题栏后不能移动的问题
- MQTT协议详解二