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理论总结相关推荐

  1. Qt扫盲- QTcpSocket 理论总结

    QTcpSocket 理论总结 一.概述 二.使用 一.概述 TCP (Transmission Control Protocol)是一种可靠的.面向流的.面向连接的传输协议.它特别适合于数据的连续传 ...

  2. Qt扫盲-QSqlQuery理论总结

    QSqlQuery理论总结 一.概述 二.使用 1. 数据查询 2.查询参数绑定 3. 绑定值的方法 1. 使用命名占位符的命名绑定: 2. 使用命名占位符的位置绑定: 3. 使用位置占位符绑定值(版 ...

  3. Qt扫盲-QDebug理论总结

    QDebug理论使用总结 一.概述 二.使用 1. 基础使用 2. 格式化选项 3.将自定义类型写入流 一.概述 每当开发人员需要将调试或跟踪信息写入设备.文件.字符串或控制台时,都会使用QDebug ...

  4. Qt扫盲-QNetworkAccessManager理论总结

    QNetworkAccessManager理论总结 一.概述 二.基础用法 1. 下载数据 2. 上传数据 二.网络和漫游支持 一.概述 QNetworkAccessManager 其实就是一个访问网 ...

  5. Qt扫盲-QProcess理论总结

    QProcess理论使用总结 一.概述 二.使用 三.通过 Channel 通道通信 四.同步进程API 五.注意事项 1. 平台特性 2. 不能实时读取 一.概述 QProcess 其实更多的是与外 ...

  6. Qt扫盲-QSlider理论总结

    QSlider理论总结 1. 简述 2. 常用功能 3. 外观 4. 最常用信号 5. 键盘功能 1. 简述 QSlider是用于控制边界值的经典小部件.它允许用户沿水平或垂直凹槽移动QSlider ...

  7. Qt扫盲-QSystemTrayIcon理论总结

    QSystemTrayIcon理论总结 一.概述 二.使用对象 三.使用 四.常用函数介绍 1. 静态函数 2. 公共槽函数 3. 信号 一.概述 现代操作系统通常在桌面上提供一个特殊的区域,称为系统 ...

  8. Qt扫盲-QTabWidget理论总结

    QTabWidget理论总结 1. 简述 2. 用法流程 3. 选项卡设置 3. 页面信息 3. 外观 4. 扩展 1. 简述 QTabWidget 提供一个选项卡栏和一个"页面区域&quo ...

  9. Qt扫盲-QLineEdit理论总结

    QLineEdit理论总结 1. 简述 2. 输入模式 3. 输入限制 4. 文本操作槽函数 3. 信号 4. 快捷键 5. 外观 1. 简述 QLineEdit 是一个有用的编辑功能类,主要是处理输 ...

最新文章

  1. linux网络配置总结,linux中的网络配置命令的总结
  2. Linux之nginx入门
  3. PHPsymfony
  4. matlab 判断元素索引_MATLAB图像处理:08:在交通视频中检测汽车
  5. 浅谈Oracle执行计划
  6. geotools将shp数据存入postgres
  7. 二进制算法——模二运算
  8. 迅雷精简版依托迅雷强大的P2P资源网络和独特的下载技术
  9. AutoCAD2013 以上利用AccoreConsole+ c# NetApi 批量处理图纸
  10. 象棋马走日UML类图
  11. 启动计算机命令,电脑启动项命令
  12. 白城师范学院计算机系鲍金玲,企业绩效考核方法的比较与借鉴.pdf
  13. font color=red[置顶]/font
  14. java安全体系:JCA、JCE、JSSE、JAAS
  15. OpenCV里的常用Rect用法
  16. MySQL 分组后取最新记录
  17. IOB寄存器的使用:IOB= TRUE 属性
  18. 超静音 无振动 | TRINAMIC的3D打印机解决方案
  19. 画布式编程_构建HTML5画布游戏如何帮助我学习编程
  20. Fluent求解器——亚松弛因子

热门文章

  1. Windows API简单实例
  2. 西交大计算机学硕是公费吗,西工大硕士生待遇太差,和交大没法比,建议学弟学妹不要上,切记,欢迎顶贴,标题要长...
  3. Adobe Premiere Pro2021系统兼容性报告(Intel 和 NVIDIA)
  4. 百度AI应用的创建以及AK、SK的获取
  5. 状态驱动的游戏智能体设计(上)
  6. 用树莓派PICO做一个桌面时钟超详细教程!
  7. == live555 ==
  8. LoRaWAN介绍 - LoRa从业者读这篇就够了
  9. 4款免费邮件服务器软件
  10. 基于logisim的八位求补器的设计与实现