首页 > 其他分享 >Qt QSplitter拆分器

Qt QSplitter拆分器

时间:2023-07-10 16:23:27浏览次数:32  
标签:Qt s1 QSplitter t3 addWidget 拆分 QPlainTextEdit new

1.简介

QSplitter拆分器允许用户通过拖动子部件之间的边界来控制它们的大小。

单个拆分器可以控制任意数量的小部件。QSplitter的典型用法是创建几个小部件,并使用insertWidget()或addWidget()添加它们。

2.常用方法

 默认情况下,QSplitter会动态调整其子元素的大小。如果您希望QSplitter仅在调整大小操作结束时调整子元素的大小, 那么调用setOpaqueResize(false)。

void setOpaqueResize(bool opaque = true)

将子部件的各自大小设置为列表中给定的值。

如果splitter是水平的,则这些值将以像素为单位设置每个小部件的宽度,从左到右。

如果splitter是垂直的,则从上到下设置每个小部件的高度

void setSizes(const QList<int> &list)

3.示例

3.1伸缩系数

添加3个QPlainTextEdit,默认水平方式添加的,并且设置了伸缩系数,我个人理解,伸缩系数,好比,比例系数。上图比例为 2:1:1。

源码:

 1     QSplitter *s1 = new QSplitter(this);
 2     ui->verticalLayout->addWidget(s1);
 3  
 4     //添加3个widget
 5     QPlainTextEdit *t1 = new QPlainTextEdit(s1);
 6     t1->setPlaceholderText("t1");
 7  
 8     QPlainTextEdit *t2 = new QPlainTextEdit(s1);
 9     t2->setPlaceholderText("t2");
10  
11     QPlainTextEdit *t3 = new QPlainTextEdit(s1);
12     t3->setPlaceholderText("t3");
13  
14     s1->addWidget(t1);
15     s1->addWidget(t2);
16     s1->addWidget(t3);
17  
18     s1->setStretchFactor(0,2);
19     s1->setStretchFactor(1,1);
20     s1->setStretchFactor(2,1);

3.2 setOpaqueResize(false)效果

 默认为true,效果如下

 3.3QSplitter相互嵌套

 源码:

 1     QSplitter *mainSplitter = new QSplitter(this);
 2     ui->verticalLayout->addWidget(mainSplitter);
 3  
 4     QSplitter *rightSplitter = new QSplitter(mainSplitter);
 5     rightSplitter->setOrientation(Qt::Vertical);    //设置垂直方向
 6  
 7     //添加3个widget
 8     QPlainTextEdit *t1 = new QPlainTextEdit(mainSplitter);
 9     t1->setPlaceholderText("t1");
10  
11     QPlainTextEdit *t2 = new QPlainTextEdit(rightSplitter);
12     t2->setPlaceholderText("t2");
13  
14     QPlainTextEdit *t3 = new QPlainTextEdit(rightSplitter);
15     t3->setPlaceholderText("t3");
16  
17     rightSplitter->addWidget(t2);
18     rightSplitter->addWidget(t3);
19  
20     mainSplitter->addWidget(t1);
21     mainSplitter->addWidget(rightSplitter);

 

标签:Qt,s1,QSplitter,t3,addWidget,拆分,QPlainTextEdit,new
From: https://www.cnblogs.com/ybqjymy/p/17541481.html

相关文章

  • Qt 读写XML文件
    Qt对XML的读写操作1、简介使用XML模块,在.pro文件中添加QT+=xml,并加如相应的头文件#include<QtXml>#include<QDomDocument>或者#include<QXmlStreamReader>QtXml模块提供了一个读写XML文件的流,解析方法包含DOM和SAX。(1)DOM(DocumentObjectModel):将XML文件表示成一......
  • ekf 扩展卡尔曼滤波定位 qt仿真程序 粒子滤波定位
    ekf扩展卡尔曼滤波定位qt仿真程序粒子滤波定位YID:6830622857944996......
  • Qt源码阅读(五)-deleteLater
    QtdeleteLater作用及源码分析个人经验总结,如有错误或遗漏,欢迎各位大佬指正......
  • Qt/C++原创项目作品精选(祖传原创/性能凶残)
    00前言说明从事Qt开发十年有余,一开始是做C#.NET开发的,因为项目需要,转行做嵌入式linux开发,在嵌入式linux上做可视化界面开发一般首选Qt,当然现在可选的方案很多比如安卓,但是十多年前那时候板子性能低,安卓在这个上面跑的话卡成屎,当时的内存大概是128MB左右,Qt也是主要用QWidget,刚出......
  • Qt使用过程中的一些问题
    1.qt.gui.imageio:libpngwarning:iCCP:knownincorrectsRGBprofile在Qt开发过程中使用了一些png图片导致报了这个信息,是因为这些png图片中嵌入了icc颜色管理模块导致。解决方法:下载JQTools工具,然后点击“Qt相关”->“PNG告警消除”,选择图片进行转换便可以消除告警。......
  • python: PyQt5 beginner
     fromPyQt5.QtWidgetsimportQWidget,QApplication,QMainWindow,QLabel,QPushButtonfromPyQt5importQtCore,QtGuiimportsysimportosdefclick():print("HyButtonisclicked!")#Pressthegreenbuttonintheguttertorunthescri......
  • 如何实现Java mqtt 客户端,收到自己发出消息的具体操作步骤
    实现JavaMQTT客户端收到自己发出的消息介绍在本文中,我将教会你如何使用Java实现一个MQTT(MessageQueuingTelemetryTransport)客户端,以接收自己发出的消息。MQTT是一个轻量级的消息协议,广泛应用于物联网和实时通信领域。我们将使用EclipsePaho库来实现这个功能。整体流程下面......
  • vba批量合并and拆分多个Excel文件
    1、拆分:一个文件按照某一列的类型,拆分成多个文件:PrivateSubSplitDataByColumn()'学习代码DimsourceWorkbookAsWorkbookDimsourceWorksheetAsWorksheetDimlastRowAsLongDimcolumnToSplitAsRangeDimuniqueValuesAsCollection......
  • 学习 Qt 编程的好书推荐
    最近一段时间,陆陆续续给大家更新了不少基于Qt开发的不错的书籍,可以说每本都不错。不过放在这一堆大家也不知道先看哪个,后看哪个?所以这块给大家列举一下学习的顺序:由浅入深。大家也可以根据自己对于Qt方面的热衷程度与想要学习的深度来决定该看到哪本书籍。1、《QtCreator快......
  • 【慢慢买嗅探神器】基于scrapy+pyqt的电商数据爬虫系统
    项目预览项目演示代码部分爬虫模块GUI......