为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?
发布于 2019-06-19 14:00:28
解决这一问题的实际方法是手动将最小大小设置为裸最小值,以避免不正确的呈现:
ds.setMinimumHeight(30);发布于 2019-06-19 09:09:13
我建议将VerticalSpacers添加到top和底部,它们被设置为"expanding“,以便将滑块夹好。因此,当您调整整个小部件的大小时,对于垂直更改,滑块保持minimumHeight,,但是对于水平更改,它会扩展(至少这是您希望达到的目标)。
https://stackoverflow.com/questions/56662698
复制相似问题