首页 > 其他分享 >Qt控件QSplitter的用法

Qt控件QSplitter的用法

时间:2024-04-29 22:11:07浏览次数:30  
标签:控件 widget const Qt int QSplitter splitterVertical

简介

继承自 QFrame

构造

  • 创建竖排分割窗口(一列多行)
QSplitter *splitterVertical = new QSplitter(Qt::Vertical, nullptr); 
  • 创建横排分割窗口(一行多列)
QSplitter *splitterHorizontal = new QSplitter(Qt::Horizontal, nullptr);

添加部件

  • 以子控件的方式添加
QTextEdit *textTop= new QTextEdit(QObject::tr("Top Widget"), splitterVertical);
QTextEdit *textBottom= new QTextEdit(QObject::tr("Bottom Widget"), splitterVertical);
  • 以addWidget方式添加
QTextEdit *textTop= new QTextEdit(QObject::tr("Top Widget"));
QTextEdit *textBottom= new QTextEdit(QObject::tr("Bottom Widget"));
splitterVertical->addWidget(textTop);
splitterVertical->addWidget(textBottom);

将QSplitter添加到QWidget中

QHBoxLayout * m_layout = new QHBoxLayout;
m_layout->addWidget(splitterVertical);
ui->centralwidget->setLayout(m_layout);

属性

childrenCollapsible小控件大小是否可以为0

//false: 不可为0
splitterVertical->setChildrenCollapsible(false);

handleWidth拆分线的宽度

//默认取决于平台和样式设置, 可以用以下方法修改:
splitterVertical->setHandleWidth(5);

opaqueResize小控件是否在调整拆分线时动态刷新, 默认为动态(true)

splitterVertical->setOpaqueResize(false);

orientation拆分器的方向, 默认横向

//Qt::Horizontal 或 Qt::Vertical.
splitterVertical->setOrientation(Qt::Vertical); //设置为纵向(一列多行)

接口

设置可拉伸小控件

//设定第0个控件为可拉伸(1:改变总窗口大小时, 这个控件高宽都可以变)
splitterVertical->setStretchFactor(0,1); 

返回小控件数量

int QSplitter::count() const

返回一个新的小控件句柄

QSplitterHandle *QSplitter::createHandle()

查找小控件widget的索引

//查找失败则返回-1
int QSplitter::indexOf(QWidget *widget) const

在指定索引处插入窗口widget

//如果widget已经在其中, 它会被移动到新的位置
void QSplitter::insertWidget(int index, QWidget *widget)

返回索引处的widget是否可折叠

bool QSplitter::isCollapsible(int index) const

返回最小大小

QSize QSplitter::minimumSizeHint() const

移动左边/顶边到指定位置

//移动左边/顶边到 index的 pos处
void QSplitter::moveSplitter(int pos, int index)

小控件替换

//替换索引处的widget
QWidget *QSplitter::replaceWidget(int index, QWidget *widget)

恢复窗口布局到指定状态

//成功返回true
bool QSplitter::restoreState(const QByteArray &state)

//例: 从 QSettings中恢复
QSettings settings;
splitter->restoreState(settings.value("splitterSizes").toByteArray());

保存窗口状态

QByteArray QSplitter::saveState() const

设置小控件是否可折叠

//设置索引处的widget是否可折叠
void QSplitter::setCollapsible(int index, bool collapse)
//例: 设置第1个控件不可折叠(即: 不会完全隐藏)
splitterVertical->setCollapsible(1, 0);

设置橡皮筋选择框位置

//在pos处设置一个橡皮筋选择框
void QSplitter::setRubberBand(int pos)

批量设置小控件的大小

//将小控件的大小设置为列表给定的值
//如果是水平拆分器, 列表给定的值将作为宽度, 如果是垂直拆分器, 则作为高度.
//如果少于小控件数量, 则少的部分加载默认值, 如果多, 则多的部分忽略
//如果设置为0, 则小控件不可见.
void QSplitter::setSizes(const QList<int> &list)

返回所有小控件大小列表

//如果是水平拆分器, 则列表为宽度, 否则为高度
QList<int> QSplitter::sizes() const

返回索引处的小控件

//如果没有, 则返回 nullptr
QWidget *QSplitter::widget(int index) const

高级用法

设置拆分器大小不可调整

QSplitterHandle *splitterHandle = splitter->handle(1);     //获取第1个分割器
if(splitterHandle) 
{ 
    //Disable the Middle Line, it can't adjust. 
    splitterHandle->setDisabled(true); 
}

标签:控件,widget,const,Qt,int,QSplitter,splitterVertical
From: https://www.cnblogs.com/linkyip/p/18166744

相关文章

  • C# winform 漂亮的日期时间控件
    源代码下载:https://download.csdn.net/download/gaoxiang19820514/89242240效果图在HZH-Controls控件基础上修改的日期控件因为HZH_Controls控件中的日期控件太大了,我的程序中需要多个日期时间的控件放不下,主题是绿色的,所以手动调了一下样式。为了和HZH_Controls同时使......
  • Qt QSettings读写ini时 General 读不出来值
    简述我有一个配置文件,其中一个组General,怎么都读不出正确的值,全是空,但是别的组能读出来,改General2试试,果然可以,就怀疑是不是组名称被内置了。打开QSettings的帮助文档,搜索General,有内容,看下解释TheINIfileformathassevererestrictionsonthesyntaxofakey.Qt......
  • ant-design Tree树形控件,通过expandedKeys控制收缩或折叠失效
    一、概述AntDesign的树形组件Tree,通过属性expandedKeys手动控制组件的展开和收缩时,点击节点后更新expandedKeys属性值可以正常展开,再点击左侧三角形小图标时(onExpand)却不能收缩了。  二、问题分析a.根据以往经验,出现keys的问题,一般是由key的数据重复或类型(尤其Number......
  • C# Winform常用控件缩写大全
    平常写小工具经常用到Winform编写测试工具,经常忘记控件缩写,所以在网上看了篇文章后,把他记录下来,方便自己查找。标准控件1btnButton2chkCheckBox3cklCheckedListBox4cmbComboBox5dtpDateTimePicker6lblLabel7llbLinkLabel8lstListBox9lvwListView10m......
  • Python-PyQt5接口压测工具分享
    1、页面介绍  2、运行效果 ......
  • 【Qt 专栏】DateTime日期时间组件
    本文转载自:https://cloud.tencent.com.cn/developer/article/2371799本章将重点介绍QDateTime日期与时间组件的常用方法及灵活运用。 在Qt中,日期和时间的处理通常使用QDateTime类。QDateTime是一个用于表示日期和时间的类,而与之相关的组件还包括QDate、QTime以及QDateTi......
  • qt 使用hid开源库 ,搜索所有的hid设备
    效果:  cmakeLists.txt:cmake_minimum_required(VERSION3.5)project(TF_Hid_UseANDTestVERSION0.1LANGUAGESCXX)set(CMAKE_AUTOUICON)set(CMAKE_AUTOMOCON)set(CMAKE_AUTORCCON)set(CMAKE_CXX_STANDARD17)set(CMAKE_CXX_STANDARD_REQUIREDON)file(G......
  • 【网络通信】一文读懂网络应用层常见协议的区别(HTTP 、HTTPS、MQTT、FTP、RTSP、RTMP)
        应用层协议是计算机网络中至关重要的组成部分,它们定义了应用程序如何与网络进行交互,实现数据的传输、接收和处理。本文将重点介绍几种常见的应用层协议:HTTP、HTTPS、MQTT、FTP、RTSP和RTMP,分析它们的特点、区别、工作原理以及应用场景。一、HTTP协议      ......
  • Qt 中 qint64 转 汉字写法
    如9223372036854775807转为九百二十二兆三千三百七十二亿零三百六十八万五千四百七十七万五千八百零七注意:此过程并未检查qint64类型的的上限!!使用的是中国传统的乘方数位,即“一百个一百为一万,一万个一万是一亿,一亿个一亿是一兆”,即可有如下数位:个,十,百,千,万,十万,百万,千万,亿,十......
  • 【Qt 专栏】文件对话框 文件的弹窗选择-QFileDialog
    前言:通过按钮实现文件弹窗选择以及关联的操作效果图就和平时用电脑弹出的选文件对话框一样原型图技能:头文件:#include<QFileDialog>//头文件QStringfilename=QFileDialog::getOpenFileName(this,"弹窗标题","E://","Images(*.png*.jpg)");弹出对话框选择文件 实......