首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在qscrollbar旁边添加小部件

在qscrollbar旁边添加小部件
EN

Stack Overflow用户
提问于 2015-02-04 22:30:56
回答 1查看 554关注 0票数 0

如何将小部件放置在QScrollbar旁边,如下面所示:

我使用一个QScrollArea并覆盖水平QScrollBar。首先,我想,我可以用paintEvent画一个文本,像"100 %“旁边的酒吧。但我只能重写现有的画。

现在我认为,唯一的机会是从源代码中实现洞QScorllBarPrivate .有人知道吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-05 00:53:33

主要的想法是创建一个覆盖,模糊默认的水平滚动条,并取消你自己的底线。

  1. 创建一个代表底线的小部件,即一个标签显示一些信息的小部件和一个水平的QScrollBar,所有这些都放在一个hbox布局中。
  2. 将此小部件放入滚动区域,而不通过制作该小部件的QScrollArea直接父部件将其添加到布局中。
  3. 在底线小部件上使用move()resize(),在初始化时正确地定位它。此外,调整大小并在滚动区域调整大小(可以使用事件筛选器或继承来调整事件的大小)。
  4. 确保滚动区的horizontalScrollBarPolicyQt::ScrollBarAlwaysOn,这样滚动区的内部布局总是保持足够的空间来容纳底线小部件。
  5. 还要确保底线小部件具有与默认滚动条相同的高度。只要您删除hbox布局中的间距和页边距,标签(或其他小部件)就不需要比滚动条更多的垂直空间,这应该很容易。
  6. 使用horizontalScrollBar()获取滚动区域的内部QScrollBar,并将其与您自己的条同步。QScrollBarrangeChanged()valueChanged()信号,所以您可以连接到它们并正确地更新您的栏。当用户更改滚动条的值并触发其valueChanged()信号时,应为内部滚动条设置相同的值。通过使用指示这是您自己的更改的标志,您可以在那里防止无限递归。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28332799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档