Advertisement

QSlider支持显示双精度值

阅读量:

需求

QSlider内置了valueChanged(int)信号;显示单元件同样采用int参数传递机制。具体而言,在LCD Number组件中对应的槽函数为display(int),而Label组件对应的槽函数则为setNum(int)。
为了实现基于double值的变化控制,请考虑创建一个自定义类DoubleSlider。该类将继承自QSlider,并将触发双精度数值更新事件:void doubleValueChanged(double value);随后,在主程序中定义一个双精度参数化的槽函数即可完成配置。

2.思考

我的想法是:我不打算更换Slider自身的valueChanged(int)信号。原因在于qt designer自动生成的UI文件(如ui.h)每次修改界面都需要手动更新非常耗时。

如果能够更改信号属性或相关槽函数,则能显著提升开发效率和减少工作量。

我打算编写一个自定义槽函数:接收int类型的数值,在程序内部进行计算后将结果显示为所需的小数形式(即与label自身的setNum(int)方法的功能相同),从而避免依赖label预设的槽函数功能。

复制代码
    void PCLViewer::updateLabelValue(int value)
    {
    double doublevalue = value/100.0;
    ui->

全部评论 (0)

还没有任何评论哟~