远好奇小哥 2023-06-15 11:49 采纳率: 66.7%
浏览 131
已结题

QT slider设置数值跟随滑块同步移动的问题

我使用图片代码实现滑块滑动时数值的位置跟随滑块的位置同步移动,但是数值越大,数值的位置比滑块越靠右

img

开始时

img

在中间

img


在终点时

img

  • 写回答

8条回答 默认 最新

  • 急速光粒 2023-06-15 14:28
    关注

    代码有误,你的slider样式表改过吧,运行效果:

    img

    把代码调成如下代码,注意ui->slider->width() - 10需要减去中间滑块的宽度10(默认是10),如果你改成其他宽度,需要设置成你样式表指定的宽度,目测你的好像是28,你把ui->slider->width() - 10改成ui->slider->width() - 28:

    void MainWindow::on_slider_valueChanged(int value)
    {
        //ui->slider->width() - 10需要减去中间滑块的宽度10(默认是10),如果你改成其他宽度,需要设置成你样式表指定的宽度
        int x = ui->slider->x() + (value - ui->slider->minimum()) * (ui->slider->width() - 10) / (ui->slider->maximum() - ui->slider->minimum() );
         int y = ui->slider->y() - ui->label->height() - 5; // 将标签放在滑块上方
    
         // 设置标签的位置
         ui->label->move(x, y);
    
         // 更新标签的文本
         ui->label->setText(QString::number(value));
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(7条)

报告相同问题?

问题事件

  • 系统已结题 6月24日
  • 已采纳回答 6月16日
  • 修改了问题 6月15日
  • 赞助了问题酬金15元 6月15日
  • 展开全部