C++ Qt在两个qslider之间有一个距离条

C++ Qt在两个qslider之间有一个距离条,c++,qt,qslider,C++,Qt,Qslider,我正在创建一个自定义多滑块,我已经创建了多个控制柄的滑块。这就是它目前的样子: 如您所见,有3个手柄。但是看到中间的那个酒吧吗?我需要它坐在两个备用滑块之间,但由于某些原因,它只是保持稍微向右偏移:( 我试着搜索这个,我不想使用预先制作的多滑块,有人能帮我吗 这是处理移动中间滑块的代码: auto slider_min(ui->slider_multi_slider->minimum()); auto slider_max(ui->slider_multi_slider-&g

我正在创建一个自定义多滑块,我已经创建了多个控制柄的滑块。这就是它目前的样子:

如您所见,有3个手柄。但是看到中间的那个酒吧吗?我需要它坐在两个备用滑块之间,但由于某些原因,它只是保持稍微向右偏移:(

我试着搜索这个,我不想使用预先制作的多滑块,有人能帮我吗

这是处理移动中间滑块的代码:

auto slider_min(ui->slider_multi_slider->minimum());
auto slider_max(ui->slider_multi_slider->maximum());
auto slider_size_px(ui->slider_multi_slider->size().width());


auto end(ui->slider_multi_slider->endHandleValue());
auto start(ui->slider_multi_slider->startHandleValue());
auto diff(end - start);
auto mid(start + (diff/2));

auto start_x_pos(QStyle::sliderPositionFromValue(slider_min,slider_max,start,slider_size_px));
auto end_x_pos(QStyle::sliderPositionFromValue(slider_min,slider_max,end,slider_size_px));
auto mid_x_pos(QStyle::sliderPositionFromValue(slider_min,slider_max,mid,slider_size_px));

auto diff_x_pos(end_x_pos - start_x_pos);

ui->slider_multi_slider->setValue(mid);

slider_style = new SliderProxyStyle();
slider_style->setWidth(diff_x_pos);
ui->slider_multi_slider->setStyle(slider_style);

感谢@Jonathan Mee-编辑我的文章,语法不是我的强项,但对这个问题有什么想法吗?很遗憾,我没有任何智慧可以告诉你。我希望清理这个问题可以帮助其他人回答它,因为我很好奇。甚至更多的编辑喜欢它,但不喜欢大量的解决方案啊哈:(我在stack overflow上只工作了一个月,仍然在使用我的格式,还有什么不感谢editsHow没有SliderProxyStyle它看起来怎么样?它是如何实现的?没有SliderProxyStyle它看起来像一个普通的QSlider::Handler,如果不使用SliderProxySy覆盖它,你就无法更改它的大小。)