• 804阅读
  • 2回复

[提问]QT QLineEdit 计算问题 [复制链接]

上一主题 下一主题
离线phoenixgp
 

只看楼主 倒序阅读 楼主  发表于: 2023-03-03
各位大佬,本人才开始学习C++ QT,有个问题咨询一下。
有L1、L2、L3、L4、L5、L6六个LineEdit,公式为L1+L2+L3=L4,L4+L5=L6;我想知道L4的值在计算完成后,如何再引用到第二个公式里;代码要如何写。
望不吝赐教,谢谢了!
在线20091001753

只看该作者 1楼 发表于: 2023-03-03
  1.     ui->line4->setReadOnly(true);
  2.     ui->line6->setReadOnly(true);
  3.     for(auto var:{ui->line1,ui->line2,ui->line3}){    //这3个控件,任意一个改变,都会从新计算 L4
  4.         connect(var,&QLineEdit::textChanged,[&](const QString &text){
  5.             auto str = ui->line1->text()+ui->line2->text()+ui->line3->text();
  6.             ui->line4->setText(str);
  7.         });
  8.     }
  9.     for(auto var:{ui->line4,ui->line5}){    //L4、L5 ,任意一个改变,都会从新计算 L6
  10.         connect(var,&QLineEdit::textChanged,[&](const QString &text){
  11.             ui->line6->setText(ui->line4->text()+ui->line5->text());
  12.         });
  13.     }

(づ ̄ 3 ̄)づ
离线phoenixgp

只看该作者 2楼 发表于: 2023-03-06
回 20091001753 的帖子
20091001753:    ui->line4->setReadOnly(true);    ui->line6->setReadOnly(true);
    for(auto var:{ui->line1,ui->line2,ui->line3}){    //这3个控件,任意一个改变,都会从新计 .. (2023-03-03 15:03)

非常感谢,再问一下,我改成以下代码了,有没有什么简便写法。
  1. ui->line4->setReadOnly(true);
  2. for(auto var:{ui->line1,ui->line2,ui->line3}){ //这3个控件,任意一个改变,都会从新计算 L4
  3. connect(var,&QLineEdit::textChanged,[=](){
  4. bool ok;
  5. QString line4_String;
  6. QString line1=ui->line1->text();
  7. QString line2=ui->line2->text();
  8. QString line3=ui->line3->text();
  9. int line1_int=line1.toInt(&ok);
  10. int line2_int=line2.toInt(&ok);
  11. int line3_int=line3.toInt(&ok);
  12. double line4_show=line1_int*line2_int*line3_int;
  13. ui->line4->setText(line4_String.setNum(line4_show));
  14. });
  15. }

1条评分金钱+10
20091001753 金钱 +10 Qt5开始强制编译器至少支持 C11 标准,所以你可以在编程的时候,可以大量采用 auto 关键词 2023-03-06
快速回复
限100 字节
 
上一个 下一个