C++Qt动态增加垂直滚动条

这篇具有很好参考价值的文章主要介绍了C++Qt动态增加垂直滚动条。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本博文源于笔者正在工作的一个小内容,内容涉及到为qt动态增加垂直滚动条。文章分为三个部分,问题起源,问题解决方案,问题解决成功效果。思路清晰,文章干货满满,复制源码即可使用。

问题起源

qt中一个页面测试项一共很多种,如果都在一个页面显示就会显得很臃肿,如果有个动态创建时有个可以下拉的滚动条就很好。下面读者可以看下没有滚动条的页面

C++Qt动态增加垂直滚动条,QT,c++,qt,开发语言

问题解决方案

#include "widget.h"
#include <QApplication>
#include <QtGui>
#include <QVBoxLayout>
#include <QTableWidget>
#include <QPushButton>
#include <QLabel>
#include <QScrollArea>
#include<QGroupBox>
#include<QCheckBox>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);


    QWidget *page = new QWidget; //整个内容

    QVBoxLayout* mainLayout = new QVBoxLayout(page);//铺满整个页面
    QScrollArea* scrollArea = new QScrollArea;
    QWidget* contentWidget = new QWidget;
    QVBoxLayout* contentLayout = new QVBoxLayout(contentWidget);//将layout绑定起来了

    scrollArea->setWidgetResizable(true);
    contentLayout->setAlignment(Qt::AlignTop);

    QTabWidget tabWidget;

    QWidget tab1,tab2;

    // 模拟数据
    QList<QString> caseNames;
       caseNames << "Case 1" << "Case 2" << "Case 3" << "Case 4" << "Case 5" << "Case 6" << "Case 7" << "Case 8";

       for (int i = 0; i < caseNames.size(); i++) {
           if (i % 2 == 0) { // 每两个groupBox为一行
               QHBoxLayout* rowLayout = new QHBoxLayout();
               contentLayout->addLayout(rowLayout);
           }

           QGroupBox* groupBox = new QGroupBox(caseNames[i], &tab1);
           groupBox->setFixedSize(200, 50);
           QVBoxLayout* groupBoxLayout = new QVBoxLayout(groupBox);
           groupBox->setLayout(groupBoxLayout);
           QCheckBox* checkBox = new QCheckBox(("Enabled"), groupBox);
           checkBox->setChecked(true);
           groupBoxLayout->addWidget(checkBox);

           QHBoxLayout* rowLayout = dynamic_cast<QHBoxLayout*>(contentLayout->itemAt(contentLayout->count() - 1)->layout());
           rowLayout->addWidget(groupBox);
       }

       scrollArea->setWidget(contentWidget); // 将内容窗口设置为滚动区域的子控件

       mainLayout->addWidget(&tabWidget);
       mainLayout->addWidget(scrollArea); // 将滚动区域添加到主布局中

    page->setLayout(mainLayout);
    page->show();
    return a.exec();

}

问题解决效果

C++Qt动态增加垂直滚动条,QT,c++,qt,开发语言文章来源地址https://www.toymoban.com/news/detail-654386.html

到了这里,关于C++Qt动态增加垂直滚动条的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt中的垂直布局QVBoxLayout和水平布局QHBoxLayout

    Qt中的垂直布局(Vertical Layout)是用来将控件按垂直方向进行排列的布局管理器。下面是一些常用的Qt Vertical Layout的函数及其用法示例: QVBoxLayout类的构造函数: 使用QVBoxLayout类的构造函数创建一个垂直布局对象。 QVBoxLayout类的addSpacing()函数:

    2024年02月11日
    浏览(34)
  • qt界面布局之水平布局与垂直布局(QHBoxLayout, QVBoxLayout)

    QHBoxLayout 提供了一些方法,下面简单介绍一下常用方法 QVBoxLayout与QHBoxLayout使用类似,这里就不贴QVBoxLayout的代码了 void addWidget(QWidget *, int stretch = 0, Qt::Alignment alignment = Qt::Alignment()); 第一个参数可以传入一个QWidget的派生类指针类型(可以理解是待加入的控件地址) 第二个参数传

    2024年02月09日
    浏览(47)
  • Qt增加版本公司等信息

            在项目中生成exe或者动态库过程中可能需要加入公司信息、版本号、说明等等,可以通过两种方式增加右键文件说明信息。 1.方式一:在pro文件中增加对应的宏 2.方式二:自定义rc文件 在pro文件中增加: xxx.rc文件内容 3.设置方法 在QMake Manual手册中搜索关于QMAKE

    2024年01月22日
    浏览(41)
  • qt学习:进度条,水平滑动条,垂直滑动条+rgb调试实战

    目录 水平滑动条,垂直滑动条 常用信号 进度条 常用信号  修改进度条 例子  rgb调色 配置ui界面 编写3个进度条的事件函数 添加链表容器和按钮索引 在.h里的类定义 初始化链表容器和按钮索引 编写添加颜色的按钮点击事件函数 效果 valueChanged(int)  数值变化的时候 sliderMov

    2024年01月20日
    浏览(44)
  • 【Visual Studio】Qt 的实时绘图曲线功能,使用 C++ 语言,配合 Qt 开发串口通信界面

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 战斗背景:做了个串口接收界面,用来接收传输过来的信号。但是光用数字显示太单调,需要用图线显示出来。 战略目标:干掉它。 战术路线:Qt 绘图可以使用 Qt Charts,先了解

    2024年02月11日
    浏览(49)
  • QT添加窗口滚动条

    QT UI界面太大,在笔记本小屏幕上显示不全,增加窗口滚动条可以拖到窗口来显示 如果已经有设计的UI,需要先全选然后剪切到粘贴板上 选择QT Creator左侧类栏中的Scroll Area,拖放到UI上,调整大小覆盖UI 粘贴之前剪切的UI到Scroll Area之上。 修改scrollArea其中三个属性,具体如下

    2024年02月11日
    浏览(59)
  • 【VisualStudio】使用 C++ 语言开发 Qt 环境配置教程

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 先上一张效果图,具体步骤主要分为以下三步。 这一步不再赘述,注意一定要安装 C++ 语言。 可以参考这个教程 Visual Studio 2022安装与使用教程。 这一步也不再赘述,网上搜索教

    2024年02月10日
    浏览(76)
  • QT 之自动滚动区QScrollArea

    QScrollArea提供了一个滚动视图到另一个部件。 滚动区域用于显示一个画面中的子部件的内容。如果部件超过画面的大小,视图可以提供滚动条,这样就都可以看到部件的整个区域。 QScrollArea属于控件容器类,可以直接在ui中拖出来 添加需要放置的控件到QScrollArea里面,然后栅

    2024年02月12日
    浏览(47)
  • Qt图片定时滚动播放器

    Qt图片浏览器 QT制作一个图片播放器 Qt中自适应的label+pixmap充满窗口后,无法缩小只能放大 可以显示jpg、jpeg、png、bmp。可以从电脑上拖动图到窗口并显示出来或者打开文件选择,定时滚动图片 重载实现dragEnterEvent(拖拽)、dropEvent(拖拽放下)、resizeEvent(窗口大小改变)

    2024年02月08日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包