QT5字符串与数值之间转换,输出两位小数

场景

Qt界面使用最多的就是Label和QLineEdit,前者用于显示字符串,后者用于显示和输入字符串。在设置的界面中,经常需要使用字符串转int或float,本文记录的知识点:

  • 字符串转int;
  • 字符串转float;
  • 计算并输出两者之积,结果保留2位小数;
步骤
  1. 新建一个mainwindow工程;
  2. 进入ui编辑页面;
  3. 插入label和lineedit,并使用网格布局,结果如图:分别为lineedit,lineedit_1,lineedit_2,pushButton.
    QT5字符串与数值之间转换,输出两位小数_第1张图片
  4. 右键button,构建slot函数,选择触发信号为clicked();
    QT5字符串与数值之间转换,输出两位小数_第2张图片
  5. 代码如下;
  • ui 为指向UI界面的成员变量指针,可以通过ui访问所有的可视化生成的界面组件;
  • 通过访问界面组件的 ->text()获取字符串信息,通过字符串的 toInt,toFloat方法将其转换为整型,浮点型;
  • 通过setText方法设置lineEdit对象的Text值。
void MainWindow::on_pushButton_clicked()
{
    QString str = ui->lineEdit->text();
    int num = str.toInt();
    str=ui->lineEdit_2->text();
    float price=str.toFloat();
    float total = num* price;
    str.clear();
    str=str.sprintf("%.2f",total);
    ui->lineEdit_3->setText(str);
}

其中str=str.sprintf("%.2f",total);可以换成以下三种方法实现小数点后保留两位:

str=QString::number(total,'f',2);
str=QString::asprintf("%0.2f",total);
str=str.setNum(total,'f',2);
  1. 编译运行:
    在这里插入图片描述
  2. 小技巧:
  • 其实更简单的方式是使用:spinbox和doublespinbox用于输入和显示整型和浮点型数据,可以在其实体对象上设置,prefix,suffix, mini,max,decimals等等,decimals即为小数点后保留的位数。
  • 通过手动添加slot函数,可以在spinbox对象的值改变的时候自动计算。
QObject::connect(ui->spinBoxC,SIGNAL(valueChanged(int)),this,SLOT(on_pushButton_clicked()));

你可能感兴趣的:(QT)