为QSlider启用刻度线似乎会弄乱滑块本身的sizeHint。
考虑以下简单代码:
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QSlider ds{Qt::Horizontal};
ds.setRange(0, 100);
ds.setTickPosition(QSlider::TicksAbove);
ds.setTickInterval(20);
ds.show();
return a.exec();
}
这是呈现方式:
注意下面如何裁剪滑块。
在复杂的小部件中,此行为也相同:
调整第一个滑块刻度位置的窗口大小不会跟随滑块本身。
所以问题是如何在启用刻度的情况下正确呈现QSlider?
答案 0 :(得分:0)
我建议在顶部和底部处添加 VerticalSpacers ,它们均设置为“ 扩展”以便将滑块夹在中间。因此,当您调整整个窗口小部件的大小时,对于垂直更改,滑块会保持 minimumHeight ,但是对于水平更改,它会扩展(至少这是我期望的目标)。
答案 1 :(得分:0)
我发现解决此问题的实用方法是将最小尺寸手动设置为最小,以免出现错误的渲染:
ds.setMinimumHeight(30);