我正在尝试制作一个自定义小部件,它基本上是一堆文本编辑,右侧有一个垂直滚动条。为了确定小部件的大小,我必须找到滚动条的宽度,因为 texedits 几何形状取决于它。只需调用scroll_bar->width();对于新创建的垂直条,返回 101,这显然是错误的。
那么,Qt 3.2.3 有没有办法正确确定垂直滚动条宽度?
int w = qApp->style()->pixelMetric(QStyle::PM_ScrollBarExtent);
我也发现了
vsb->sliderRect().width();
这恰好是正确的,但在代码中看起来很糟糕,因为我对滑块本身不感兴趣。
如果您使用
scrollArea
并在使用 Hank 的答案时使滚动条的宽度短了几个像素,请尝试以下操作:
int scrollBarWidth = qApp->style()->pixelMetric(QStyle::PM_ScrollBarExtent);
scrollBarWidth += ui->scrollArea->width() - ui->scrollAreaWidgetContents->width();
scrollArea
和scrollAreaWidgetContents
之间的尺寸似乎有一点小小的差异。