【QT】splitter实现界面部件的左右滑动

本文介绍如何使用Qt在主窗口中实现一个包含TreeView、Label和TableView的界面,并通过QSplitter实现部件间的左右滑动及伸缩效果。

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

在.ui上添加一个treeView,一个Label和一个TableView
在构造函进行设置实现部件的左右滑动

    // MainWindow默认有个布局,不能直接布局,需新建一个Widget设置为CentralWidget
    QWidget* widget = new QWidget;
    setCentralWidget(widget);
    //设置水平布局
    QHBoxLayout* layoutH = new QHBoxLayout(this);
    //创建分裂布局器
    QSplitter* splitterH = new QSplitter(Qt::Horizontal, this);
    QSplitter* splitterV = new QSplitter(Qt::Vertical, splitterH);  //其父件为splitterH
    splitterV->addWidget(ui->label);
    splitterV->addWidget(ui->tableView);
    splitterH->addWidget(ui->treeView);
    splitterH->addWidget(splitterV);
    //设置分裂器的伸缩
    // 函数原型:setStretchFactor(int index, int stretch)
    //第一个参数index表示部件下标,第二个参数stretch表示伸缩的大小
    //以我的理解:若是想让初始界面的左边的树的大小小一点,右边的垂直布局大一点,就把右边的部件(下标为1)的stretch设置为1
    splitterH->setStretchFactor(1, 1);
    //若是想初始界面的label大一点,treeView小一点,就将label部件(下标为0)的stretch设置为1
    splitterV->setStretchFactor(0, 1);
    //布局添加分裂器
    layoutH->addWidget(splitterH);
    //设置整体布局
    widget->setLayout(layoutH);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值