char * 与 const char *的转换

char *ch1="hello11";
const char *ch2="hello22";
ch2 = ch1;//不报错,但有警告
ch1 = (char *)ch2;
  • 1
  • 2
  • 3
  • 4

char 与 QString的转换

char 转换为 QString 
其实方法有很多中,我用的是:

char a='b';
QString str;
str=QString(a);
  • 1
  • 2
  • 3

QString 转换为 char 
方法也有很多种

QString str="abc";
char *ch;
QByteArray ba = str.toLatin1()
ch = ba.data();
  • 1
  • 2
  • 3
  • 4

注意:在调用QByteArray.data()之前,必须要先显示储存这个bytearray。像这样const char *ch = str.toLatin1().data();会使程序崩溃,因为QByteArray没有被储存,调用data()前是不存在的,必须先显式调用一次toLatin1(),再调用data()。

QByteArray 与 char* 的转换

QByteArray 转换为 char *

char *ch;//不要定义成ch[n];
QByteArray byte;
ch = byte.data();
  • 1
  • 2
  • 3

char * 转换为 QByteArray

char *ch;
QByteArray byte;
byte = QByteArray(ch);
  • 1
  • 2
  • 3

QString 与 QByteArray 的转换

QString转换为QByteArray

QByteArray byte;
QString string;
byte = string.toAscii();
  • 1
  • 2
  • 3

QByteArray 转换为 QString

QByteArray byte;
QString string;
string = QString(byte);
  • 1
  • 2
  • 3

这里再对这俩中类型的输出总结一下:

qDebug()<<"print";
qDebug()<<tr("print");
qDebug()<<ch;(ch 为char类型)
qDebug()<<tr(ch);
qDebug()<<byteArray;(byteArray是QByteArray类型)
qDebug()<<tr(byteArray);
qDebug()<<str;(str 为Qstring类型)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

但是qDebug()<<tr(str);是不可以的,要想用tr()函数输出QString类型的字符则要如下:

qDebug()<<tr(str.toLatin1);
  • 1

int与 QString 的转换

int 转 QString

int a=10;
QString b;
b=QString::number(a)
  • 1
  • 2
  • 3

QString 转int

QString a="120"
int b;
b=a.toInt()
  • 1
  • 2
  • 3

QString与string的转换

QString –> string

QString.toStdString();
string --> QString
QString::fromStdString(string)
  • 1
  • 2
  • 3

QString与其他类型的转换

QString —>int,double,char *

QString::toInt()
QString::toDouble()
QString.toStdString().c_str();
  • 1
  • 2
  • 3

int double char* —>string 
可以采用里的stringstream

以int 为例,

int a = 3;
stringstream ss;
string strInt;
ss<<a;
ss>>strInt;
  • 1
  • 2
  • 3
  • 4
  • 5

QString—>QDateTime 
QDateTime转QString

public QDateTime qdate = QDateTime.currentDateTime();
datetime = qdate.toString("yyyy年MM月dd日ddddhh:mm:ss");
//2012年03月-05日Monday13:48:55 QString转换成QDateTime QDateTime dateTime2 = QDateTime::fromString("M1d1y9800:01:02","'M'M'd'd'y'yyhh:mm:ss");
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

QString –>Char*

Qstring 转换char*问题! 
方法一:

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

方法二:

const char *p = qstr.toStdString().data();
//转换过来的是常量
  • 1
  • 2

方法三:

QString str="abc";
char *ch;
QByteArray ba = str.toLatin1()
ch = ba.data();
  • 1
  • 2
  • 3
  • 4

或者

QString tmp = "test";
QByteArray text = tmp.toLocal8Bit();
char *data = new char[text.size() + 1]
strcpy(data, text.data());
delete [] data;
  • 1
  • 2
  • 3
  • 4
  • 5

QDateTime 转换为 QString

QString strBuffer;
QDateTime time; time = QDateTime::currentDateTime(); strBuffer = time.toString("yyyy-MM-dd hh:mm:ss"); // strBuffer = 2015-12-21 17:35:00
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

String 转换为 QDateTime

QString strBuffer;
QDateTime time; strBuffer = "2010-07-02 17:35:00"; time = QDateTime::fromString(strBuffer, "yyyy-MM-dd hh:mm:ss");
http://blog.csdn.net/u013007900/article/details/50354680

Qt中的对象类型转换(Qstring 转换char*有三种方法)的更多相关文章

  1. Qt中的对象类型转换

    char * 与 const char *的转换 char *ch1="hello11"; const char *ch2="hello22"; ch2 = c ...

  2. Qt中所有类型之间的转换

    1.char * 与 const char *的转换 char *ch1="hello11";const char *ch2="hello22";ch2 = c ...

  3. QT中获取选中的radioButton的两种方法(动态取得控件的objectName之后,对名字进行比较)

    QT中获取选中的radioButton的两种方法   QT中要获取radioButton组中被选中的那个按钮,可以采用两种如下两种办法进行: 方法一:采用对象名称进行获取 代码: 1 QRadioBu ...

  4. PHP中把对象转数组的几个方法

    PHP中把对象转数组的几个方法: 1. //PHP stdClass Object转array function object_array($array) { if(is_object($array) ...

  5. Qt中一些常用的格式转换

    转自:http://blog.csdn.NET/yh_1988/article/details/7190356 用Qt经常头痛于一些格式不能通用的问题 在此记录备用 1 (20120112)QStri ...

  6. PyQt(Python+Qt)学习随笔:Qt中的部分类型QString、QList和指针、引用在PyQt中的实现方式

    老猿Python博文目录 老猿Python博客地址 在我们查阅Qt的文档资料时,可以看到Qt中的链表使用的是QList,字符串使用的是QString,但老猿在测试时发现这两个类型PyQt不支持,无法找 ...

  7. QT中获取选中的radioButton的两种方法

    QT中要获取radioButton组中被选中的那个按钮,可以采用两种如下两种办法进行: 方法一:采用对象名称进行获取 代码: 1 QRadioButton* pbtn = qobject_cast&l ...

  8. Qt中的强制类型转换

    在C++开发中经常要进行数据类型的强制转换. 刚开始学习的时候,直接对基本数据类型强制类型转换,如float fnum = 3.14; int num = (int)fnum; 随着C++标准的发展, ...

  9. qt 中的对象树

    本节内容讲解了什么是对象树以及其所带来的 GUI 编程好处.最后说明了在对象树中析构顺序问题并举了个特殊的例子,来说明平时编程中需要注意的一个点. 什么是对象树? 我们常常听到 QObject 会用对 ...

随机推荐

  1. localstroge与cookie的区别

    HTML5本地存储是一种让网页可以把键值对存储在用户浏览器客户端的方法.像Cookie一样,这些数据不会因为你打开新网站,刷新页面,乃至关闭你的浏览器而消失. 而与Cookie不同的时,这些数据不会每 ...

  2. CF# 260 A. Laptops

    One day Dima and Alex had an argument about the price and quality of laptops. Dima thinks that the m ...

  3. VS2008下直接安装使用Boost库1.46.1版本号

    Boost库是一个可移植.提供源码的C++库,作为标准库的后备,是C++标准化进程的发动机之中的一个. Boost库由C++标准委员会库工作组成员发起,当中有些内容有望成为下一代C++标准库内容.在C ...

  4. python 命令行参数,以及文件操作

    #demo.py #!/usr/bin/python import sys print sys.argv #python demo.py 11 22 33 44 55 ['demo.py', '11' ...

  5. Clementine 12.0 的使用(因为比较少用,项目中用到才开始接触写一下自己的使用方法)

    首先我是根据excel的文件做的训练,就以excel来做介绍 1.打开Clementine 12.0 软件 点击软件下方的 ”源“ 即你要做训练的数据源.因为是excel文件双击excel. 2.双击 ...

  6. Migration data on SQL

    从表里面导出数据XML: -- export declare @xml xml set @xml = (select * from ( select TableName = 'Schema', xml ...

  7. BZOJ 1114 Number theory(莫比乌斯反演+预处理)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=71738 题意:给你一个整数序列a1, a2, a3, ... , ...

  8. Hadoop 相关问题

    1.MR Job 输入非常多,启动map 非常多,如何提高MapTask 启动速度(附加条件:集群很空闲,资源多多): 参考答案: a.重写调度器算法,降低时间复杂度 b.Out-of-bound h ...

  9. python 10 min系列三之小爬虫(一)

    python10min系列之小爬虫 前一篇可视化大家表示有点难,写点简单的把,比如命令行里看论坛的十大,大家也可以扩展为抓博客园的首页文章 本文原创,同步发布在我的github上 据说去github右 ...

  10. KISSY对vm的抽取

    vm <script type="text/javascript"> KISSY.use(['bops/js/forced-closure', 'common/js/t ...