Qt Designer中如何添加QSplitter

在Qt设计中,QSplitter无法直接在控件工具箱找到。需同时选中两个控件,通过布局菜单或工具栏添加。添加后可能出现拖动问题,可能因最大/小宽度设置或ChildrenCollapsiable属性导致。设置默认宽度可使用setStretchFactor方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Qt中新增QSplitter如何新增:

在qt designer(设计器)中,在控件工具箱中是无法找到这个qsplitter的。

操作步骤:

1、需要选中要被增加到splitter的两个控件,注意是同时选中

2、然后右键菜单->布局->使用拆分器水平布局。如下图:

3、也可以使用上方工具栏中的选项按钮,但是前提也是先选中两个控件。如下图:

 上图中子菜单的“使用拆分器水平布局”这个选项是不可点击的。原因是因为,我已经添加过splitter了。

一开始就是这个选项置灰的,无法点击。主要原因有二点:

1、因为只选中了一个控件,需要同时选中两个控件才行。

2、选中的两个控件的父控件,已经有布局了,需要先去除布局。比如上图的mainpage,已经是水平布局了,需要先打破这个布局(右键菜单或者上方标题栏都可以打破布局,不再赘述)

再进行添加splitter的操作。

ps:这两个原因巨坑,一度想弃用qt设计器改用qml,足足耗费1小时才找到原因。

添加了splitter后,再重新将父控件进行布局。

Qt的设计理念是认为splitter是父控件,可以看到splitter是作为父控件被加入到了ui布局中。

qSplitter

        ---leftBar

        ---editWidget

所以需要同时选中需要被分割的两个控件,然后再进行添加splitter。

二、添加splitter后,拖动异常

添加完splitter后,拖动会出现UI不符合预期(拖不动,拖一下会跳动)。需要做以下修改:

1、将splitter的两个控件的最大最小宽度设置好,若到达了最大最小宽度,会导致无法拖动

2、若发现拖动后,忽然一个控件被隐藏了,只需关闭qsplitter的ChildrenCollapsiable即可,如下图:

 

三、Qsplitter的默认宽度如何设置?

当添加完qsplitter后,发现默认的左右控件所处位置不符合预期。

比如我们预期刚启动时,左控件的宽度为100,右控件的宽度为900

可以通过添加如下代码:

//set the splitter default-ratio,第一个参数是代码第几列,因为是左右布局
//总共是10,左侧占据1,右侧占据9
ui->splitter->setStretchFactor(0, 1);
ui->splitter->setStretchFactor(1, 9);

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值