为了让QScrollBar的滑块根据singleSteps()的数量改变大小,我尝试了几种方法。我希望stepSize()是~1。
下面的链接离我最近,但我似乎不能让它工作。
http://www.qtcentre.org/threads/2133-QScrollBar-custom-slider-s-size
我需要做什么才能改变滑块的大小?我会发布代码,但就像我上面说的,我已经尝试了许多不同的尝试,我想清理我的石板,看看如何改变滑块大小的一个很好的干净的例子。
发布于 2012-07-09 08:37:50
通常,滑块的大小应该表示滚动内容的可见部分的大小。这就是QAbstractSlider的应用程序接口设计的目的。
如果您希望将可见部分的大小锁定为内容总大小非整数的整数倍,那么惯用的方法是按非整数因子height / (maximum() + pageStep())重新缩放滚动条的输出。文档的逻辑高度(长度)映射到maximum() + pageStep()。当然,您可以将singleStep()设置为等于pageStep()。
给定一些numStrips和height,如下所示:
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;https://stackoverflow.com/questions/11386082
复制相似问题