You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改QwtKnob的精度为三位小数?

解决QwtKnob显示三位小数的问题

1. 调整QwtKnob的刻度与精度

QwtKnob默认步长为0.01(对应两位小数),要支持三位小数,需修改步长并设置刻度标签格式:

knobtest::knobtest(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags)
{
    ui.setupUi(this);
    // 设置旋钮刻度范围(可根据实际需求自定义)和步长,0.001对应三位小数精度
    ui.Knob->setScale(0.0, 100.0, 0.001);
    // 让刻度标签显示三位小数
    QwtScaleDraw* scaleDraw = ui.Knob->scaleDraw();
    scaleDraw->setLabelFormat("%.3f");
    
    connect(ui.Knob, SIGNAL(sliderMoved(double)), this, SLOT(knobChange(double)));
}

2. 调整LCDNumber的显示精度

需要让LCD控件正确显示三位小数,有两种方式:

  • 方式一:在构造函数中预先设置
    在ui.setupUi(this)后添加:
    // 设置LCD显示3位小数
    ui.lcdNumber->setDecimals(3);
    // 设置足够的数字位数(示例为整数3位+小数3位+小数点,共7位)
    ui.lcdNumber->setDigitCount(7);
    
  • 方式二:在回调函数中格式化数值
    修改knobChange函数,将数值四舍五入到三位小数后显示:
    void knobtest::knobChange(double value)
    {
        double preciseValue = qRound(value * 1000) / 1000.0;
        ui.lcdNumber->display(preciseValue);
    }
    

内容的提问来源于stack exchange,提问作者lili

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 21:45:29