Qt中的对象类型转换(Qstring 转换char*有三种方法)
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*有三种方法)的更多相关文章
- Qt中的对象类型转换
char * 与 const char *的转换 char *ch1="hello11"; const char *ch2="hello22"; ch2 = c ...
- Qt中所有类型之间的转换
1.char * 与 const char *的转换 char *ch1="hello11";const char *ch2="hello22";ch2 = c ...
- QT中获取选中的radioButton的两种方法(动态取得控件的objectName之后,对名字进行比较)
QT中获取选中的radioButton的两种方法 QT中要获取radioButton组中被选中的那个按钮,可以采用两种如下两种办法进行: 方法一:采用对象名称进行获取 代码: 1 QRadioBu ...
- PHP中把对象转数组的几个方法
PHP中把对象转数组的几个方法: 1. //PHP stdClass Object转array function object_array($array) { if(is_object($array) ...
- Qt中一些常用的格式转换
转自:http://blog.csdn.NET/yh_1988/article/details/7190356 用Qt经常头痛于一些格式不能通用的问题 在此记录备用 1 (20120112)QStri ...
- PyQt(Python+Qt)学习随笔:Qt中的部分类型QString、QList和指针、引用在PyQt中的实现方式
老猿Python博文目录 老猿Python博客地址 在我们查阅Qt的文档资料时,可以看到Qt中的链表使用的是QList,字符串使用的是QString,但老猿在测试时发现这两个类型PyQt不支持,无法找 ...
- QT中获取选中的radioButton的两种方法
QT中要获取radioButton组中被选中的那个按钮,可以采用两种如下两种办法进行: 方法一:采用对象名称进行获取 代码: 1 QRadioButton* pbtn = qobject_cast&l ...
- Qt中的强制类型转换
在C++开发中经常要进行数据类型的强制转换. 刚开始学习的时候,直接对基本数据类型强制类型转换,如float fnum = 3.14; int num = (int)fnum; 随着C++标准的发展, ...
- qt 中的对象树
本节内容讲解了什么是对象树以及其所带来的 GUI 编程好处.最后说明了在对象树中析构顺序问题并举了个特殊的例子,来说明平时编程中需要注意的一个点. 什么是对象树? 我们常常听到 QObject 会用对 ...
随机推荐
- js 时间戳转换成时间格式,可自定义格式
由于 c# 通过ajax获取的时间 传到前台 格式为:/Date(1354116249000)/ 所以需要转换一下,想要什么格式 更改 format() 里的 返回语句 就可以了 formatDate ...
- C#高级编程技术复习一
从基本的Socket编程进入 (注意:这是转的一篇2011年的文章,有些知识可能该更新了!) 这一篇文章,我将图文并茂地介绍Socket编程的基础知识,我相信,如果你按照步骤做完实验,一定可以对Soc ...
- 表单验证插件 jquery.validata 使用方法
参考资料:http://www.runoob.com/jquery/jquery-plugin-validate.html 下载地址 jquery.validate插件的文档地址http://docs ...
- C++对象模型--C++对象模型
何为C++对象模型? 部分: 1 语言中直接支持面向对象程序设计的部分 2 对于各种支持的底层实现机制 语言中直接支持面向对象程序设计的部分,如构造函数.析构函数.虚函数.继承 ...
- centos6.5安装vsftpd
开通FTP有gssftp和vsftpd二种,查了查,据说vsftpd更稳定和更安全.就用vsftpd吧. 什么是vsftpd vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小 ...
- mac上搭建svn服务器
1.terminal 执行svnadmin create 库地址/库名,生成的即为svn库根地址. 2.修改对应目录下conf/svnserve.conf文件: anon-access = read ...
- ButterKnife 绑定 RadioGroup
原则上 ButterKnife 是不支持 RadioGroup 的, 可以通过以下方法添加RadioButton的点击事件: @OnClick({ R.id.radio_btn1, R.id.radi ...
- python函数abs()
详解: 返回绝对值 参数可以是:负数.正数.浮点数或者长整形 实例: abs(-1.2) #返回 1.2 abs(1.2) #返回 1.2 abs(-11216.5) #返回 11216.5 abs( ...
- VS前台设计中的缺陷
程序的前台界面设计我一般都是Blend中完成的,因为在VS中前台比较难控制.而效果之内的就更不用说了.今天写了个小程序用来启动其他程序的.运行界面如下: 这是尺寸和距离刚刚好的,我们去Blend当中看 ...
- Angulajs 定时器使用
在Angulajs的control中,不能利用 window.setInterval和 setTimeout 来操作定时器,因为这样做,虽然设置定时器会成功,但对$scope中的数据进行设置时,不会自 ...