标题:QT QLineEdit 计算问题
作者:phoenixgp
日期:2023-03-03 14:49
内容:
各位大佬,本人才开始学习C++ QT,有个问题咨询一下。
有L1、L2、L3、L4、L5、L6六个LineEdit,公式为L1+L2+L3=L4,L4+L5=L6;我想知道L4的值在计算完成后,如何再引用到第二个公式里;代码要如何写。
望不吝赐教,谢谢了!
#1 [20091001753 03-03 15:03]
ui->line4->setReadOnly(true);
ui->line6->setReadOnly(true);
for(auto var:{ui->line1,ui->line2,ui->line3}){ //这3个控件,任意一个改变,都会从新计算 L4
connect(var,&QLineEdit::textChanged,[&](const QString &text){
auto str = ui->line1->text()+ui->line2->text()+ui->line3->text();
ui->line4->setText(str);
});
}
for(auto var:{ui->line4,ui->line5}){ //L4、L5 ,任意一个改变,都会从新计算 L6
connect(var,&QLineEdit::textChanged,[&](const QString &text){
ui->line6->setText(ui->line4->text()+ui->line5->text());
});
}
#2 回 20091001753 的帖子 [phoenixgp 03-06 08:54]
20091001753:ui->line4->setReadOnly(true);ui->line6->setReadOnly(true);
for(auto var:{ui->line1,ui->line2,ui->line3}){//这3个控件,任意一个改变,都会从新计 .. (2023-03-03 15:03)
非常感谢,再问一下,我改成以下代码了,有没有什么简便写法。
ui->line4->setReadOnly(true);
for(auto var:{ui->line1,ui->line2,ui->line3}){ //这3个控件,任意一个改变,都会从新计算 L4
connect(var,&QLineEdit::textChanged,[=](){
bool ok;
QString line4_String;
QString line1=ui->line1->text();
QString line2=ui->line2->text();
QString line3=ui->line3->text();
int line1_int=line1.toInt(&ok);
int line2_int=line2.toInt(&ok);
int line3_int=line3.toInt(&ok);
double line4_show=line1_int*line2_int*line3_int;
ui->line4->setText(line4_String.setNum(line4_show));
});
}