Qt扫盲-QScrollArea理论总结
QScrollArea理论总结
- 1. 概述
- 2. 滚动条策略
- 3. 子控件
- 4. 尺寸提示
1. 概述
QScrollArea 用于显示滚动区域框架内的子控件的内容。如果控件超过框架的大小,视图可以提供滚动条,以便可以查看子控件的整个区域。子控件必须使用 setWidget() 指定。但是在 QDesigner 里面QScrollArea 会自动的创建一个 QWidget 名字叫 scrollAreaWidgetContents 这个类作为子控件 ,到时候我们只需要把我们想要的界面元素布局好。这个scrollAreaWidgetContents 直接 setLayout一下就好了。
也可以指定自己的子控件
例如:
QLabel *imageLabel = new QLabel;QImage image("happyguy.png");imageLabel->setPixmap(QPixmap::fromImage(image));scrollArea = new QScrollArea;scrollArea->setBackgroundRole(QPalette::Dark);scrollArea->setWidget(imageLabel);
上面的代码创建了一个包含图像标签的滚动区域(如下图所示)。缩放图像时,滚动区域可以提供必要的滚动条:
2. 滚动条策略
滚动条外观取决于当前设置的滚动条策略。您可以使用从 QAbstractScrollArea 继承的功能来控制滚动条的外观。就是控制显示不显示的功能。
例如,可以设置 QAbstractScrollArea::horizontalScrollBarPolicy 和 QAbstractScrollArea::verticalScrollBarPolicy 属性。或者,如果您希望滚动条在滚动区域的内容更改时动态调整,则可以使用 horizontalScrollBar() 和 verticalScrollBar() 函数来够访问滚动条,并在滚动区域的内容更改时使用 QScrollBar::setValue() 函数设置滚动条的值。
3. 子控件
您可以使用 widget() 函数检索子控件。可以使用 setWidgetResizable() 函数使视图大小调整。子控件的对齐方式可以用 setAlignment() 指定。
一般来说。要滚动条能够显示的条件是 widget() 所指向的控件的 大小大于 QScrollArea 的大小,这样就能把滚动条显示
就像下面的 子控件(scrollAreaWidgetContents )大小 为 高度固定 400 ,但是 QScrollArea 的高度大小是 171 就会出滚动条。(这个 只需要设置scrollAreaWidgetContents 最小高度为400就行)
当把 QScrollArea 的高度大小改为 410 ,滚动条就消失了。
两个方便的函数 ensureVisible() 和 ensureWidgetVisible() 确保内容的某个区域在视口内可见,必要时通过滚动内容。
4. 尺寸提示
使用滚动区域显示自定义子控件的内容时(其实也就是 上面的例子 scrollAreaWidgetContents ),请务必确保将子小部件的大小提示设置为合适的值。如果子小部件使用标准 QWidget,则可能需要调用 QWidget::setMinimumSize() 以确保小部件的内容在滚动区域中正确显示。 这个在 QDesigner 里面拖拽的时候的QScrollArea 就会自动生成一个 QWidget 类型的 scrollAreaWidgetContents, 我们只需要设置好 这个 scrollAreaWidgetContents 的 minimumSize 的其中一个或者所有属性就可以自动的出滚动区域了。和第3 点是一个道理。
Qt扫盲-QScrollArea理论总结相关推荐
- Qt扫盲- QTcpSocket 理论总结
QTcpSocket 理论总结 一.概述 二.使用 一.概述 TCP (Transmission Control Protocol)是一种可靠的.面向流的.面向连接的传输协议.它特别适合于数据的连续传 ...
- Qt扫盲-QSqlQuery理论总结
QSqlQuery理论总结 一.概述 二.使用 1. 数据查询 2.查询参数绑定 3. 绑定值的方法 1. 使用命名占位符的命名绑定: 2. 使用命名占位符的位置绑定: 3. 使用位置占位符绑定值(版 ...
- Qt扫盲-QDebug理论总结
QDebug理论使用总结 一.概述 二.使用 1. 基础使用 2. 格式化选项 3.将自定义类型写入流 一.概述 每当开发人员需要将调试或跟踪信息写入设备.文件.字符串或控制台时,都会使用QDebug ...
- Qt扫盲-QNetworkAccessManager理论总结
QNetworkAccessManager理论总结 一.概述 二.基础用法 1. 下载数据 2. 上传数据 二.网络和漫游支持 一.概述 QNetworkAccessManager 其实就是一个访问网 ...
- Qt扫盲-QProcess理论总结
QProcess理论使用总结 一.概述 二.使用 三.通过 Channel 通道通信 四.同步进程API 五.注意事项 1. 平台特性 2. 不能实时读取 一.概述 QProcess 其实更多的是与外 ...
- Qt扫盲-QSlider理论总结
QSlider理论总结 1. 简述 2. 常用功能 3. 外观 4. 最常用信号 5. 键盘功能 1. 简述 QSlider是用于控制边界值的经典小部件.它允许用户沿水平或垂直凹槽移动QSlider ...
- Qt扫盲-QSystemTrayIcon理论总结
QSystemTrayIcon理论总结 一.概述 二.使用对象 三.使用 四.常用函数介绍 1. 静态函数 2. 公共槽函数 3. 信号 一.概述 现代操作系统通常在桌面上提供一个特殊的区域,称为系统 ...
- Qt扫盲-QTabWidget理论总结
QTabWidget理论总结 1. 简述 2. 用法流程 3. 选项卡设置 3. 页面信息 3. 外观 4. 扩展 1. 简述 QTabWidget 提供一个选项卡栏和一个"页面区域&quo ...
- Qt扫盲-QLineEdit理论总结
QLineEdit理论总结 1. 简述 2. 输入模式 3. 输入限制 4. 文本操作槽函数 3. 信号 4. 快捷键 5. 外观 1. 简述 QLineEdit 是一个有用的编辑功能类,主要是处理输 ...
最新文章
- linux网络配置总结,linux中的网络配置命令的总结
- Linux之nginx入门
- PHPsymfony
- matlab 判断元素索引_MATLAB图像处理:08:在交通视频中检测汽车
- 浅谈Oracle执行计划
- geotools将shp数据存入postgres
- 二进制算法——模二运算
- 迅雷精简版依托迅雷强大的P2P资源网络和独特的下载技术
- AutoCAD2013 以上利用AccoreConsole+ c# NetApi 批量处理图纸
- 象棋马走日UML类图
- 启动计算机命令,电脑启动项命令
- 白城师范学院计算机系鲍金玲,企业绩效考核方法的比较与借鉴.pdf
- font color=red[置顶]/font
- java安全体系:JCA、JCE、JSSE、JAAS
- OpenCV里的常用Rect用法
- MySQL 分组后取最新记录
- IOB寄存器的使用:IOB= TRUE 属性
- 超静音 无振动 | TRINAMIC的3D打印机解决方案
- 画布式编程_构建HTML5画布游戏如何帮助我学习编程
- Fluent求解器——亚松弛因子
热门文章
- Windows API简单实例
- 西交大计算机学硕是公费吗,西工大硕士生待遇太差,和交大没法比,建议学弟学妹不要上,切记,欢迎顶贴,标题要长...
- Adobe Premiere Pro2021系统兼容性报告(Intel 和 NVIDIA)
- 百度AI应用的创建以及AK、SK的获取
- 状态驱动的游戏智能体设计(上)
- 用树莓派PICO做一个桌面时钟超详细教程!
- == live555 ==
- LoRaWAN介绍 - LoRa从业者读这篇就够了
- 4款免费邮件服务器软件
- 基于logisim的八位求补器的设计与实现