如何修改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
相关产品推荐
相关产品推荐

