qt通过代码创建滚动区域,添加滚动区域到窗口

引言

继承于QWidget创建的项目,要想在QWidget中添加很多子控件,考虑到若是子控件的数目不确定,太多的时候就需要添加滚动条来实现滚动查看,于是可以自定义一个类,在该类中实现滚动区域和滚动窗口的创建,然后将该自定义的类提升为QWidget。

实现

下面是自定义的滚动区域类
scrolldisplaywidget.h

#ifndef SCROLLDISPLAYWIDGET_H
#define SCROLLDISPLAYWIDGET_H#include <QFrame>
#include <QHBoxLayout>
#include <QScrollArea>
#include <QScrollBar>class ScrollDisplayWidget : public QFrame
{Q_OBJECT
public:explicit ScrollDisplayWidget(QWidget *parent = nullptr);QWidget *getScrollCenterWidget();//获取滚动区域的中心窗口
protected:void initWindow();//初始化窗口
signals:public slots:private:QScrollArea  *m_scrollArea;//滚动区域QWidget      *m_scrollWidget;//滚动区域的窗口QHBoxLayout  *m_layout;//水平布局滚动区域
};#endif // SCROLLDISPLAYWIDGET_H

scrolldisplaywidget.cpp

#include "scrolldisplaywidget.h"
#include <QDebug>ScrollDisplayWidget::ScrollDisplayWidget(QWidget *parent) : QFrame(parent)
{initWindow();
}QWidget *ScrollDisplayWidget::getScrollCenterWidget()
{return m_scrollWidget;
}void ScrollDisplayWidget::initWindow()
{m_scrollArea = new QScrollArea(this);m_scrollArea->setGeometry(0,0,790,900);m_scrollArea->setWidgetResizable(false);m_scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);//Qt::ScrollBarAlwaysOnm_scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);m_scrollWidget = new QWidget();//(m_scrollArea);m_scrollWidget->setGeometry(0,0,790,1500);m_scrollWidget->setMinimumSize(790,1500);m_scrollArea->setWidget(m_scrollWidget);//窗口变大的时候滚动区域的大小也可以跟随调整m_layout = new QHBoxLayout;m_layout->addWidget(m_scrollArea);
//    m_layout->addWidget(m_scrollWidget);m_layout->setContentsMargins(0,0,0,0);m_layout->setSpacing(0);this->setLayout(m_layout);
}

上述创建滚动区域后设置了滚动区域的位置大小,也设置了滚动区域的滚动条的属性,然后创建滚动区域的滚动窗口,设置其位置大小和最小大小,并设置该窗口为滚动区域的窗口,最后创建水平布局,将滚动区域加入到水平布局中,设置了水平布局的相关属性。
下面将上面的类提升为QWidget的子控件。
在这里插入图片描述
如上面所示,直接提升QFrame为自定义的类ScrollDisplayWidget。在提升后的frame控件上添加子控件,当子控件的数量超过frame的长度时就会自动出现滚动条。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523982.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SwitchHosts提示切换hosts失败!没有修改'C:\WINDOWS\system32\drivers\etc\hosts'的权限问题

文章目录1. 找到hosts文件2. 右键属性3. 去除只读勾选4. 属性安全编辑5. 点击选择修改和写入即可1. 找到hosts文件 根据将地址粘贴到窗口进行搜索找到"hosts"文件 地址: C:\Windows\System32\drivers\etc2. 右键属性 鼠标放在hosts文件上右键属性 3. 去除只读勾…

使用云原生buildpacks将你的代码转换成Docker Image | 技术头条

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;当我们在大概七年前将buildpack技术开源的时候&#xff0c;我们就知道这项技术将大大简…

qt设置鼠标追踪后,鼠标还是需要点击后才能变样式

引言 鼠标在窗口的四个边和四个角后会显示不同的样式。在构造函数中设置了鼠标追踪&#xff0c;但是鼠标依然需要点击后才能改变样式&#xff0c;究其原因是只设置了父窗口的鼠标追踪&#xff0c;没有设置子控件的追踪&#xff0c;当然是子控件与父窗口的鼠标追踪有关才需要设…

Docker镜像备份与迁移

文章目录1. 将容器备份成镜像2. 将镜像备份成本地文件3.从本地加载备份文件恢复镜像1. 将容器备份成镜像 用centos镜像创建一个名称为mycentos的容器 docker run -id --namemycentos centos:7查看所有容器 docker ps -a将容器mycentos保存为镜像 docker commit mycentos my…

明星企业内推+BAT面经,长三角的开发者联合起来!

戳蓝字“CSDN云计算”关注我们哦&#xff01;“为什么公司宁愿花20K招新人&#xff0c;也不愿给老员工加到20K&#xff1f;”这个热门的微博话题戳起了很多人的痛处&#xff0c;但根据 CSDN &《程序员》杂志发布的「中国软件开发者薪资调查报告」&#xff0c;有32.98%的开发…

Spring4.x整合Axis1.4发布WebService服务

Spring4.x整合Axis1.4发布WebService服务 文章目录一、服务端部署1. 在web.xml文件中添加映射路径和spring监听2. 添加spring-axis.xml配置文件3. 添加server-config.wsdd配置文件4. 对外发布服务外壳类5. 添加接口类6. 添加接口逻辑实现类7. 浏览器测试二、客户端部署2.1 axis…

阿里云亚太市场份额第一;AWS宣布在香港推出新区域;Facebook出成绩单;微软在美国西部开建第五个大型云平台...

戳蓝字“CSDN云计算”关注我们哦&#xff01;重磅先知 Gartner&#xff1a;阿里云亚太市场份额第一AWS宣布在香港推出新的区域一直在水逆的Facebook出成绩单微软在美国西部开建第五个大型云平台重磅快报Gartner&#xff1a;阿里云亚太市场份额第一4月24日&#xff0c;市场研究…

1s完成 大文件分割方案

按行数分割方案&#xff1a; 执行命令&#xff1a; split -l 1000 i.txt -d -a 4 gblfy_格式&#xff1a;split -l 行数 文件名 -d -a 4 gblfy_ 解析&#xff1a; 1、每个文件1000行(-l 1000)&#xff1b; 2、文件名称后缀系数不是字母而是数字&#xff08;-d&#xff09;&…

git通过指令查看某一个已经修改的文件的改动

方法 提交文件的时候提示文件发生了变动&#xff0c;这时若是要查看文件具体发生了什么变动&#xff0c;只需在命令行输入下述指令便可&#xff1a;git diff 文件名。 上面截图中可以通过git status来查看该项目中各文件的状态&#xff0c;可以看到文件 modified: SceneModule…

开发者如何写好技术简历?

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;文章来源一位实验室朋友的投稿&#xff0c;斩获BAT头条等公司的offer,金三银四一份漂亮…

Linux系统查看文件中关键词出现的次数

在Linux系统中的文件目录下&#xff1a; 执行以下命令&#xff1a; grep -o KeyWord 03.txt | wc -l格式&#xff1a;grep -o ‘关键词’ fileName | wc -l 注&#xff1a; ‘KeyWord’是指定的关键词&#xff1b; 03.txt是指定的文本 | wc -l是统计次数

设计模式--中介者模式

实验19&#xff1a;中介者模式 本次实验属于模仿型实验&#xff0c;通过本次实验学生将掌握以下内容&#xff1a; 1、理解中介者模式的动机&#xff0c;掌握该模式的结构&#xff1b; 2、能够利用中介者模式解决实际问题。 [实验任务]&#xff1a;虚拟聊天室 在“虚拟聊天…

qt自定义窗口,其绘制的窗口边框线显示不全

引言 自定义窗口&#xff0c;该窗口包含标题栏&#xff0c;默认整个窗口的边框线为蓝色&#xff0c;当点击该窗口的时候&#xff0c;窗口的边框线便为红色。程序在运行的时候&#xff0c;窗口的边框线只显示了左右两边的线&#xff0c;没有显示上下边的线。 示例 效果&#…

防火墙contos6.8操作手册

一、基本操作&#xff1a; 查看防火墙状态 service iptables status 停止防火墙 service iptables stop 启动防火墙 service iptables start 重启防火墙 service iptables restart 永久关闭防火墙 chkconfig iptables off 永久关闭后重启 chkconfig iptables on 二、查看…

漫画:996的本质是什么?

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;从前&#xff0c;有一个卖苹果的小贩&#xff0c;小贩每天都能拥有24个神奇的苹果。他…

qt整个窗口上绘制矩形与在窗口的子控件上绘制矩形

引言 创建一个基于QDialog的项目&#xff0c;自动生成ui文件&#xff0c;此时再添加新文件&#xff0c;创建一个基于QWidget的ui类&#xff0c;此类具有自定义标题栏&#xff0c;让该自定义类显示在窗口Dialog上&#xff0c;一开始具有红色的边框线&#xff0c;且四角围绕四个…

1分钟 Zookeeper 快速入门_windows环境

下载zookeeper 官网链接:https://zookeeper.apache.org/ 修改conf/zoo.cfg 文件名

跳槽季:跳和不跳之外的第三选择

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;珍妮兔转自&#xff1a;轻松做软件每年的这个时候&#xff0c;都是跳槽的黄金季节。很多公司的招聘计划&#xff0c;也是在这个时间启动。今年的“跳槽季”&#xff0c;氛围却与往年不同。滴滴裁员2000&#xff0c;…

Dubbo Zookeeper Quick Start

新建一个父工程 选择Maven 快速构建项目 按图操作&#xff1a; 添加子项目(服务方) 添加子项目(消费方) 一个父工程&#xff0c;2个子项目&#xff08;服务方&#xff0c;消费方&#xff09;&#xff0c;基本就完成了 在2个子项目中需要在main手动创建resour…

异构计算=未来?一文带你秒懂3大主流异构

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;作者&#xff1a;Pasca来源&#xff1a;蛋蛋团&#xff08;ID&#xff1a;dandan_tuan…