Qt QScrollArea使用

简介: Qt QScrollArea使用

在使用QScrollArea时,有几个注意事项需要考虑:

  1. 设置合适的小部件(widget)大小策略: 确保将要放置在QScrollArea中的小部件设置为合适的大小策略。这将确保小部件可以根据需要进行扩展,以适应滚动区域的大小。
  2. 设置滚动区域的小部件: 使用QScrollArea的setWidget方法将小部件添加到滚动区域中。这个小部件将成为滚动区域的内容,小部件区域大于QScrollArea会自动显示滚动条
  3. 处理小部件的布局: 如果你希望在滚动区域中显示多个小部件,你可以使用布局管理器(如QVBoxLayout或QHBoxLayout)对小部件进行布局。这样可以确保内容以适当的方式排列,并正确显示在滚动区域中。
  4. 调整滚动条的显示策略: 使用QScrollArea的setVerticalScrollBarPolicy和setHorizontalScrollBarPolicy方法可以控制滚动条的显示策略。你可以选择在需要时始终显示滚动条,或仅在内容超出可见区域时显示滚动条。
  5. 样式定制: 你可以使用样式表(CSS)对QScrollArea及其内部的滚动条进行定制。通过设置合适的样式属性,你可以改变滚动区域和滚动条的外观,如边框样式、背景色等。
  QScrollArea *scrollArea  = new QScrollArea();
  scrollArea->setGeometry(0, 90, 1500, 850);
  QWidget *frame = new QFrame(scrollArea);
  frame->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
  //设置widget
  scrollArea->setWidget(frame);
  scrollArea->setWidgetResizable(true);
  //设置滑动条样式
  scrollArea->verticalScrollBar()->setStyleSheet(
  "QScrollArea{border:none;background-color:transparent;}"
  "QScrollArea QScrollBar:vertical{width:8px;"
  "background:transparent;margin:0px,1px,0px,1px;"
  "padding-top:0px;padding-bottom:0px;border-radius:4px;}"
  "QScrollArea QScrollBar::handle:vertical{background:gray;"
  "border-radius:4px;}"
  "QScrollArea QScrollBar::handle:vertical:hover{background:#A1A1A1;"
  "border-radius:4px;}"
  "QScrollArea QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical{"
  "background:transparent;border-radius:4px;}"
  "QScrollArea QScrollBar::add-line:vertical,QScrollBar::sub-line:vertical{"
  "height:0px;width:0px;}");
  scrollArea->setStyleSheet("background-color:transparent;border:none;");
  frame->setMinimumHeight(3000);

推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:

零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)

https://xxetb.xet.tech/s/VsFMs


相关文章
|
1月前
|
前端开发 编译器 开发工具
Qt
Qt
12 0
|
5月前
26 QT - 事件过滤器
26 QT - 事件过滤器
22 0
|
11月前
Qt 之 QSystemTrayIcon
Qt 之 QSystemTrayIcon
244 0
Qt之QImageReader
简述 QImageReader类为从文件或设备读取图像提供了一个独立的接口。 读取图像最常用的方法是通过构造QImage和QPixmap,或通过调用QImage::load()和QPixmap::load()。QImageReader是一个专业读取图像的类,可以有更多的控制,例如,可以通过调用setScaledSize()读取图像成特定的大小,通过调用setClipRec
2533 0
|
Java C++
Qt之QFuture
简述 QFuture 类代表一个异步计算的结果。 要启动一个计算,使用 Qt之Concurrent框架 中的 APIs 之一。 QFuture 允许线程与一个或多个结果同步,这些结果将在稍后的时间点准备就绪,该结果可以是具有默认构造函数和拷贝构造函数的任何类型。如果一个结果在调用 result()、resultAt() 或 results() 函数时不可用,QFutur
1969 0
|
存储 安全 Windows
Qt之QEvent
简述 QEvent 类是所有事件类的基类,事件对象包含事件参数。 Qt 的主事件循环(QCoreApplication::exec())从事件队列中获取本地窗口系统事件,将它们转化为 QEvents,然后将转换后的事件发送给 QObjects。 一般来说,事件来自底层窗口系统(spontaneous() 返回 true),但也可以使用 QCoreApplication:
1747 0
|
安全 Java
Qt之QThreadPool和QRunnable
简述 QRunnable 是所有 runnable 对象的基类,而 QThreadPool 类用于管理 QThreads 集合。 QRunnable 类是一个接口,用于表示一个任务或要执行的代码,需要重新实现 run() 函数。 QThreadPool 管理和循环使用单独的 QThread 对象,以帮助程序减少创建线程的成本。每个 Qt 应用程序都有一个全局 QThre
3458 0
|
Windows
Qt之QProgressBar
简述 QProgressBar部件提供了一个水平或垂直进度条。 进度条用于给用户操作一个进度指示,并向它们说明应用程序仍在运行。 简述 详细描述 读取方向 进度方向 效果 源码 文本显示 效果 源码 繁忙指示 效果 源码 QSS 详细描述 可以通过setRange()来设置进度的最小值和最大值(取值范围),也可使用setMinimum(
2657 0