主要有两个函数,分别是toInt(),setNum()
其中setNum()和QString::number效果一样。
使用方法
strNum = QString::number(val,10);
strNum = strNum.setNum(val,10);
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pBtnSum_clicked()
{
QString strNum = ui->liEditNum->text();
QString strPrice = ui->liEditPrice->text();
if(strNum.isEmpty() || strPrice.isEmpty())
return;
int num = strNum.toInt();//如果字符串是‘ff’,那么base = 16,最后得到的num = 255,如果设置base=10,那么会失败,base默认为10
float price = strPrice.toFloat();
float total = num*price;
strPrice = strPrice.sprintf("%.2f",total);
ui->liEditTotal->setText(strPrice);
}
void Widget::on_pBtnDec_clicked()
{
QString strNum = ui->liEditDec->text();
if(strNum.isEmpty())
return;
int val = strNum.toInt();
strNum = strNum.setNum(val,16);//转为16进制 setNum(待转换的数字,需要转换的进制)
strNum = strNum.toUpper();//转为大写
ui->liEditHex->setText(strNum);
strNum = strNum.setNum(val,2);
ui->liEditBin->setText(strNum);
}
void Widget::on_pBtnBin_clicked()
{
QString strNum = ui->liEditBin->text();
if(strNum.isEmpty())
return;
bool ok;
int val = strNum.toInt(&ok,2);
strNum = strNum.setNum(val,16);//转为16进制 setNum(待转换的数字,需要转换的进制)
strNum = strNum.toUpper();//转为大写
ui->liEditHex->setText(strNum);
strNum = strNum.setNum(val,10);
ui->liEditDec->setText(strNum);
}
void Widget::on_pBtnHex_clicked()
{
QString strNum = ui->liEditDec->text();
if(strNum.isEmpty())
return;
bool ok;
int val = strNum.toInt(&ok,16);
strNum = strNum.setNum(val,10);//转为16进制 setNum(待转换的数字,需要转换的进制)
ui->liEditDec->setText(strNum);
strNum = strNum.setNum(val,2);
ui->liEditBin->setText(strNum);
}