Qt QDoubleSpinBox 和 QLCDNumber 实时同步显示 | C++ 代码示例
#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
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' 的显示。
原文地址: https://www.cveoy.top/t/topic/fAMX 著作权归作者所有。请勿转载和采集!