Qt QScrollArea使用

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

  1. 设置合适的小部件(widget)大小策略: 确保将要放置在QScrollArea中的小部件设置为合适的大小策略。这将确保小部件可以根据需要进行扩展,以适应滚动区域的大小。

  2. 设置滚动区域的小部件 : 使用QScrollArea的setWidget方法将小部件添加到滚动区域中。这个小部件将成为滚动区域的内容,小部件区域大于QScrollArea会自动显示滚动条

  3. 处理小部件的布局: 如果你希望在滚动区域中显示多个小部件,你可以使用布局管理器(如QVBoxLayout或QHBoxLayout)对小部件进行布局。这样可以确保内容以适当的方式排列,并正确显示在滚动区域中。

  4. 调整滚动条的显示策略: 使用QScrollArea的setVerticalScrollBarPolicy和setHorizontalScrollBarPolicy方法可以控制滚动条的显示策略。你可以选择在需要时始终显示滚动条,或仅在内容超出可见区域时显示滚动条。

  5. 样式定制: 你可以使用样式表(CSS)对QScrollArea及其内部的滚动条进行定制。通过设置合适的样式属性,你可以改变滚动区域和滚动条的外观,如边框样式、背景色等。

cpp 复制代码
  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

相关推荐
梦想的旅途232 分钟前
Python实现企业微信文本消息发送
开发语言·python·企业微信
丰锋ff34 分钟前
基于 Qt 的智能门禁系统
qt·学习
大鹏说大话1 小时前
美业微信会员系统哪个好
开发语言
程序员与背包客_CoderZ2 小时前
高性能分布式KV存储引擎RocksDB入门与C/C++编码实战
c语言·开发语言·数据库·c++·分布式·分布式数据库·rocksdb
钱栈up2 小时前
Mac 开发机一键发版不用切环境:我这样改造了团队的后端部署脚本Maven编译卡住20分钟?我靠两步定位到2处隐蔽编译错误
开发语言·python·macos
william_yangshun2 小时前
【大模型部署实战】kimi-k3-in-c 中文版:用 176KB 纯 C99 引擎在 CPU 上跑 Kimi K3 上手指南
c语言·开发语言
Sagittarius_A*2 小时前
Burst Lab | PHP 审计 14|反序列化(四):字符串逃逸与绕过技巧
开发语言·安全·php·web·反序列化
名字还没想好☜2 小时前
Go 用 slices/maps 标准库泛型函数:告别手写 Contains、Sort、去重(Go 1.21)
开发语言·后端·算法·golang·go
淼澄研学3 小时前
Python实战:基于LangChain与Chroma构建企业级RAG知识库问答系统
开发语言·python·langchain
4311媒体网3 小时前
帝国CMS网站自定义搭建技巧
服务器·开发语言·前端