Qt 4.7.4 C++ QScrollBar语言 - - 使用 QStyle 设置滑块的大小

Qt 4.7.4 C++ QScrollBar -- Use QStyle to Set Size of Slider

本文关键字:设置 使用 C++ QScrollBar 语言 Qt QStyle      更新时间:2023-10-16

我已经尝试了几种方法,以使QScrollBar的滑块根据singleSteps()的数量更改大小。我希望 stepSize() 是 ~1。

以下链接让我最接近,但我似乎无法让它工作。

http://www.qtcentre.org/threads/2133-QScrollBar-custom-slider-s-size

我需要做什么才能更改滑块大小?我会发布代码,但是就像我上面说的,我已经尝试了许多不同的尝试,我想清理我的石板,只看到一个关于如何更改滑块大小的干净示例。

通常,滑块的大小应该表示滚动内容的可见部分的大小。这就是QAbstractSlider的API的设计目的。

如果要将可见部分的大小锁定为内容的非整数整体大小的某个整数倍,则处理它的惯用方法是按非整数因子height / (maximum() + pageStep())重新缩放滚动条的输出。文档的逻辑高度(长度)映射到 maximum() + pageStep() 。您当然可以将singleStep()设置为等于 pageStep()

给定一些numStripsheight,请按以下步骤操作:

int numStrips;
qreal height;
int page = qRound(height/numStrips);
int max = (numStrips - 1) * page;
scrollBar->setMinimum(0);
scrollBar->setMaximum(max);
scrollBar->setPageStep(page);
scrollBar->setSingleStep(page);
qreal strip = scrollBar->value() * height / max;