char * 与 const char *的转换

char *ch1="hello11";
const char *ch2="hello22";
ch2 = ch1;//不报错。但有警告
ch1 = (char *)ch2;

char 与 QString的转换

char 转换为 QString

事实上方法有非常多中,我用的是:

char a='b';
QString str;
str=QString(a);

QString 转换为 char

方法也有非常多种

QString str="abc";
char *ch;
QByteArray ba = str.toLatin1()
ch = ba.data();

注意:在调用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();

char * 转换为 QByteArray

char *ch;
QByteArray byte;
byte = QByteArray(ch);

QString 与 QByteArray 的转换

QString转换为QByteArray

QByteArray byte;
QString string;
byte = string.toAscii();

QByteArray 转换为 QString

QByteArray byte;
QString string;
string = QString(byte);

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

qDebug()<<"print";
qDebug()<<tr("print");
qDebug()<<ch;(ch 为char类型)
qDebug()<<tr(ch);
qDebug()<<byteArray;(byteArray是QByteArray类型)
qDebug()<<tr(byteArray);
qDebug()<<str;(str 为Qstring类型)

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

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

int与 QString 的转换

int 转 QString

int a=10;
QString b;
b=QString::number(a)

QString 转int

QString a="120"
int b;
b=a.toInt()

QString与string的转换

QString –> string

QString.toStdString();
string --> QString
QString::fromStdString(string)

QString与其它类型的转换

QString —>int,double,char *

QString::toInt()
QString::toDouble()
QString.toStdString().c_str();

int double char* —>string

能够採用里的stringstream

以int 为例,

int a = 3;
stringstream ss;
string strInt;
ss<<a;
ss>>strInt;

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");

QString –>Char*

Qstring 转换char*问题!

方法一:

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

方法二:

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

方法三:

QString str="abc";
char *ch;
QByteArray ba = str.toLatin1()
ch = ba.data();

或者

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

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

String 转换为 QDateTime

QString strBuffer;
QDateTime time; strBuffer = "2010-07-02 17:35:00"; time = QDateTime::fromString(strBuffer, "yyyy-MM-dd hh:mm:ss");

Qt中的对象类型转换的更多相关文章

  1. Qt中的对象类型转换(Qstring 转换char*有三种方法)

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

  2. Qt中的强制类型转换

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

  3. qt 中的对象树

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

  4. Qt中图元对象的多重集成

    在继承自定义QGraphicsItem图元对象时,有时需要用到信号/槽机制,由于QGraphicsItem非QObject的子类 所以需要多重继承QObject,有一点需要特别注意:就是继承的顺序,一 ...

  5. Qt中使用ActiveX(3篇)

    由于最近需要使用ActiveX,一般来说可以使用微软提供的MFC或者ATL框架来开发,由于我个人对这部分内容不是很熟悉,好在Qt也提供对于ActiveX的支持.本文主要记录个人学习ActiveX的一些 ...

  6. Qt中如何根据类名来实例化对象

    对于Qt 来说,是可以做到运行时,根据对象的类名字(字符串)来获得对象的实例的,这点和一些语言的反射机制是一样的. 但是在Qt中,我们需要所额外的一步,就是注册.只要做到了注册,我们就可以 自由的创建 ...

  7. Qt 中使用Singleton模式需小心

    在qt中,使用Singleton模式时一定要小心.因为Singleton模式中使用的是静态对象,静态对象是直到程序结束才被释放的,然而,一旦把该静态对象纳入了Qt的父子对象体系,就会导致不明确的行为. ...

  8. JavaScript中的数据类型转换

    本文中提到的“原始值”指的是undefined,null,Boolean,string和number. 本文中的对象是native对象,宿主对象(浏览器定义的对象)按照各自的算法转换. JavaScr ...

  9. QT 中 关键字讲解(emit,signal,slot)

    Qt中的类库有接近一半是从基类QObject上继承下来,信号与反应槽(signals/slot)机制就是用来在QObject类或其子类间通讯的方法.作为一种通用的处理机制,信号与反应槽非常灵活,可以携 ...

随机推荐

  1. jQuery基础 浅析(含基本方法和选择器)

    1.jQuery与DOM互相转换 jQuery入库函数:$(document).ready(function(){}) $(function(){}) $(“#btn”):jQuery存储的是DOM对 ...

  2. PAT 天梯赛 L1-043 阅览室

    L1-043. 阅览室 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者 ...

  3. TextBox取不到值及其TextBox取不到js赋的值

    原文发布时间为:2009-10-22 -- 来源于本人的百度文章 [由搬家工具导入] 原因:使用了一个只读的TextBox控件 曾经遇到过这样的问题:使用了一个只读的TextBox控件,但是在后台代码 ...

  4. 【Reship】use of tangible T4 template engine

    1.first of all 之前在 “使用T4模板生成代码 – 初探” 文章简单的使用了T4模板的生成功能,但对于一个模板生成多个实例文件,如何实现这个方式呢?无意发现一个解决方案 “Multipl ...

  5. js禁用"Backspace"键(即禁止网页倒退)

    项目遇到的一个问题一个普通网页,如果这个网页上没有焦点的话,那么点击"Backspace"键的时候,网页会回退(倒退到上一个网页),这样就会就有一个问题,当我在一个输入框进行输入的 ...

  6. Understand:高效代码静态分析神器详解(一)【转】

    转自:http://www.codemx.cn/2016/04/30/Understand01/ 之前用Windows系统,一直用source insight查看代码非常方便,但是年前换到mac下面, ...

  7. hexo安装问题解决方法

    常见错误 { [Error: Cannot find module './build/Release/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' ...

  8. LeetCode OJ-- Generate Parentheses *

    https://oj.leetcode.com/problems/generate-parentheses/ 输入n产生n个( ,n个 )组成的所有合法的括号组合. 现在纸上画画,找到规律: 1.每一 ...

  9. Codeforces 897 C.Nephren gives a riddle-递归

    C. Nephren gives a riddle   time limit per test 2 seconds memory limit per test 256 megabytes input ...

  10. (6)ASP.NET HttpServerUtility 类

    HttpServerUtility 类 提供用于处理 Web 请求的 Helper 方法 https://msdn.microsoft.com/zh-cn/library/system.web.htt ...