0

カスタム マルチ スライダーを作成しています。既に複数のハンドルを持つスライダーを作成しています。現在の様子は次のとおりです。

ここに画像の説明を入力

ハンドルはご覧の通り3本。しかし、真ん中にあるバーが見えますか?2 つの代替スライダーの間に配置する必要がありますが、何らかの理由で、わずかに右にオフセットし続けます :(。

これを検索してみましたが、既製のマルチスライダーを使いたくないのですが、誰か助けてもらえますか?

これは、中央のスライダーの移動を処理するコードです。

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);
4

0 に答える 0