zoukankan      html  css  js  c++  java
  • Qt中 QString 和int, char等的“相互”转换

    Qt中 int ,float ,double转换为QString

    有两种方法

    1.使用

    QString::number();

    如:

    long a = 63;

    QString s = QString::number(a, 10); // s == "63"

    QString t = QString::number(a, 16).toUpper(); // t == "3F"

    long a = 63; QString s = QString::number(a, 10); // s == "63" QString t = QString::number(a, 16).toUpper(); // t == "3F"(解释,变量a为int型或者float,double。10和16为进制) toUpper是大写

    2.使用

    long a = 63;

    QString s = QString("%1").arg(a);

    long a = 63; QString s = QString("%1").arg(a);这个嘛,我不常用

    把QString转换为 double类型

    方法1.

    QString str="123.45";

    double val=str.toDouble(); //val=123.45

    QString str="123.45"; double val=str.toDouble(); //val=123.45

    方法2.很适合科学计数法形式转换

    bool ok;

    double d;

    d=QString("1234.56e-02").toDouble(&ok); //ok=true;d;12.3456.

    bool ok; double d; d=QString("1234.56e-02").toDouble(&ok); //ok=true;d;12.3456.

    把QString转换为float形

    1

    QString str="123.45";

    float d=str.toFloat(); //d=123.45

    QString str="123.45"; float d=str.toFloat(); //d=123.45

    2.

    QString str="R2D2";

    bool ok;

    float d=str.toFloat(&ok); //转换是被时返回0.0,ok=false;

    QString str="R2D2"; bool ok;float d=str.toFloat(&ok); //转换是被时返回0.0,ok=false;

    把QString形转换为整形

    1.转换为十进制整形

    注意:基数默认为10。当基数为10时,并且基数必须在2到36之

    间。如果基数为0,若字符串是以0x开头的就会转换为16进制,若以0开头就转换为八进制,否则就转换为十进制。

    Qstring str="FF";

    bool ok;

    int dec=str.toInt(&ok,10); //dec=255 ; ok=rue

    int hex =str.toInt(&ok,16); //hex=255;ok=true;

    Qstring str="FF"; bool ok;int dec=str.toInt(&ok,10); //dec=255 ; ok=rue int hex =str.toInt(&ok,16); //hex=255;ok=true;

    3.常整形转换为Qstring形

    long a =63;

    QString str=QString::number(a,16); //str="3f";

    QString str=QString::number(a,16).toUpper(); //str="3F";

    long a =63; QString str=QString::number(a,16); //str="3f"; QString str=QString::number(a,16).toUpper(); //str="3F";

    Qstring 转换char*问题!

    方法一:

    QString qstr("hello,word");

    constchar * p = qstr.toLocal8Bit().data();

    QString qstr("hello,word"); const char * p = qstr.toLocal8Bit().data();

    方法二:

    constchar *p = qstr.toStdString().data();

    const char *p = qstr.toStdString().data();

    转换过来的是常量

    把当前时间转化为QString...

    public QDateTime qdate = QDateTime.currentDateTime();
    datetime = qdate.toString("yyyy年MM月dd日ddddhh:mm:ss");
    如果不是QTime和QDate类比如说:通过TCP/IP接收到的char unsigned char 类等如何转换为QString类
    QString Time2String( DWORD dwTime)
    {
    char cTime[50] = {0};
    memset(cTime,0,50);
    strftime(cTime,32,"%Y-%m-%d %H:%M:%S",localtime(&time_t(dwTime)));
    return QString(cTime);
    }

  • 相关阅读:
    python模块—socket
    mac os系统的快捷键
    教你如何将UIImageView视图中的图片变成圆角
    关于ASP.NET MVC
    iOS 日期格式的转换
    将App通过XCode上传到AppStore 出现这个错误“An error occurred uploading to the iTunes Store”的解决方法
    关于MAC OS下面两个软件的功能改进——Dictionary和Fit 输入法
    分享一下上个星期的香港行程
    【博客园IT新闻】博客园IT新闻 iPhone 客户端发布
    解决Entity Framework Code First 的问题——Model compatibility cannot be checked because the database does not contain model metadata
  • 原文地址:https://www.cnblogs.com/xpwzq/p/3259154.html
Copyright © 2011-2022 走看看