#include 'hlcdform.h' #include 'ui_hlcdform.h' #include 'QDoubleSpinBox' #include 'QLCDNumber'

HLCDForm::HLCDForm(QWidget *parent) : QWidget(parent), ui(new Ui::HLCDForm) { ui->setupUi(this); ui->setupUi(this); connect(ui->doubleSpinBox, QOverload::of(&QDoubleSpinBox::valueChanged), this, [=](double value){ ui->lcdNumber->display(value); }); }

HLCDForm::~HLCDForm() { delete ui; }

double HLCDForm::getValue() { return ui->doubleSpinBox->value(); }

'LCDNumber' 不能随着 'QDoubleSpinBox' 实时变化内容:要实现 'LCDNumber' 随着 'QDoubleSpinBox' 的实时变化,可以使用 'QDoubleSpinBox' 的 'valueChanged' 信号和 'QLCDNumber' 的 'display' 函数来更新 'LCDNumber' 的显示。

在 'HLCDForm' 的构造函数中,连接 'QDoubleSpinBox' 的 'valueChanged' 信号到一个 lambda 表达式,该 lambda 表达式接收 double 类型的 value 参数,并调用 'QLCDNumber' 的 'display' 函数来更新 'LCDNumber' 的显示。

具体代码如下:

HLCDForm::HLCDForm(QWidget *parent) : 
    QWidget(parent), 
    ui(new Ui::HLCDForm)
{
    ui->setupUi(this);
    connect(ui->doubleSpinBox, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, [=](double value){
        ui->lcdNumber->display(value);
    });
}

这样,当 'QDoubleSpinBox' 的值发生变化时,lambda 表达式会被调用,将新的值传递给 'QLCDNumber' 的 'display' 函数,从而更新 'LCDNumber' 的显示。

Qt QDoubleSpinBox 和 QLCDNumber 实时同步显示 | C++ 代码示例

原文地址: https://www.cveoy.top/t/topic/fAMX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录