首先有些可以直接强制转换,比如float a; int b=(int)a强制转换下但可能会造成损失,不能强制转换的可以参照下边内容。
1、int ~~> QString
//即可把a转换成QString
2、float/double ~~> QString
//得到1.23,第二个参数是转换类型,见下边倒数第二个重构函数,最后一个参数是精确位数。
3、 QString——QByteArray
在UART通讯时传输的数据类型要求时QByteArray,得到的QString或者int等类型需要转换成QByteArray,其实很简单,直接。
其他数据类型想转QByteArray可以先转成QString再转到QByteArray。
很简单直接.to就提醒了。
4、16进制——int——QString——float
将格式该为16后得到的就是"ff"16进制的字符串类型。
反过来如果要一个"ff"的16进制字符串转换成10进制整数
参照上图中的QString.toInt(bool *ok=nullptr, base =10)函数,将base该为16即可。如
如果 num.toInt(&ok,10)这样,返回的则是0!
5、16进制自动补零
在组帧的时候会用到这种 *** 作。让每个数据占用固定的字节。
//k为int型或char型都可,得到的 key 为 000f。
6、保留指定小数位数与科学计数法
qt可以实现连接各种数据库,这里介绍qt自带的一种数据库(Qsqlite)#include<QSqlQuery>
#include<QObject>
#include<QVariantList>
#include<QDebug>
#include<QSqlError>
#include<QTextCodec>
#include<QObject>
staticboolcreateConnection()
{QSqlDatabasedb=QSqlDatabase::addDatabase("QSQLITE")
db.setDatabaseName("mytest.db")
if(!db.open())
returnfalse
QSqlQueryquery
//query.exec(QObject::tr("createtablestudent(idintprimarykey,namevchar)"))
//query.exec(QObject::tr("insertintostudentvalues(0,'刘')"))
////query.exec(QObject::tr("insertintostudentvalues(1,'刚')"))
//query.exec(QObject::tr("insertintostudentvalues(2,'红')"))
//query.prepare("insertintostudentvalues(?,?)")
//-------------------------------------------------------
//通过下面这段代码可以实现向数据库插入变量
//--------------------------------------------------------
QVariantListages
intx1,x2,x3,x4
x1=12
x2=13
x3=14
x4=15
ages<<x1<<x2<<x3<<x4
query.addBindValue(ages)
QVariantListnames
names<<QObject::tr("小王")<<QObject::tr("小明")<<QObject::tr("小张")<<QObject::tr("小新")//如果要提交空串,用QVariant(QVariant::String)代替名字
query.addBindValue(names)
if(!query.execBatch())//进行批处理,如果出错就输出错误
qDebug()<<query.lastError()
returntrue
}
#endif//DATABASE_H
然后用QSqlTableModel实现数据库数据显示
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)