0
如何放置一个小窗口旁边QScrollbar喜欢这里看到: 添加小部件旁边qscrollbar
我使用QScrollArea和覆盖水平,QScrollBar。首先,我想,我可以使用paintEvent在栏的旁边绘制文本,如“100%”。但我只能覆盖现有的绘画。
现在我想,唯一的机会就是从源代码中实现QScorllBarPrivate这个洞......任何人有任何想法吗?
如何放置一个小窗口旁边QScrollbar喜欢这里看到: 添加小部件旁边qscrollbar
我使用QScrollArea和覆盖水平,QScrollBar。首先,我想,我可以使用paintEvent在栏的旁边绘制文本,如“100%”。但我只能覆盖现有的绘画。
现在我想,唯一的机会就是从源代码中实现QScorllBarPrivate这个洞......任何人有任何想法吗?
主要想法是创建一个覆盖隐藏默认的水平滚动条并代替您自己的底线。
move()
和resize()
以在初始化时正确定位它。调整大小并在滚动区域调整大小(您可以使用事件过滤器或继承来调整事件大小)。horizontalScrollBarPolicy
为Qt::ScrollBarAlwaysOn
,使滚动区域的内部布局始终保持空间足够底线小部件,以适应。horizontalScrollBar()
获取滚动区域的内部QScrollBar
并将其与您自己的栏同步。 QScrollBar
有rangeChanged()
和valueChanged()
信号,因此您可以连接到它们并正确更新您的栏。当用户更改滚动条的值并触发其valueChanged()
信号时,应该为内部滚动条设置相同的值。您可以通过使用标志来防止无限递归,表明这是您自己的改变。
QScrollBar只是滚动区域的一个小部件成员。当您在滚动区域中收到大小事件时,是否可以调整水平滚动条的大小?如果是这样,您可以向滚动区域绘制事件添加额外的渲染以绘制您的百分比和分辨率 – cppguy
QScrollbar变小,但它与左边界对齐。我不知道如何在那里放置一个新的部件(也在他的右侧..) – Viatorus