QT之字符串类

前面我们讲解了开发计算器的信号处理机制,接下来我们来讲讲关于字符串显示的问题。

我们都知道 C 语言不支持真正意义上的字符串;C 语言是用字符数组和一组函数来实现字符串操作的;C 语言不支持自定义类型,因此我们无法获得字符串类型。
从 C 到 C++ 的进化过程引入了自定义类型,在 C++ 中可以通过类完成字符串类型的定义。C++ 中的STL标准库又是怎么一回事呢?STL是意义上需要与 C++ 一同发布的标准库,它是一套以模板技术完成的 C++ 类库,包含了常用的算法和数据结构,同样也包含了字符串类。
那么有一个我们容易忽略的事实,那就是STL的具体实现依赖于编译器生产厂商。STL 的 “标准” 只是其接口是标准的,即相同的全局函数、算法类和数据结构、类成员函数。不同厂商的编译器所带的 STL 存在差异。如果是依赖于 STL 开发的 C++ 程序在不同平台上的行为可能出现差异!!!
Qt中的字符串类:采用 Unicode 编码,使用隐式共享技术来节省内存和不必要的数据拷贝,能够跨平台使用,不必考虑字符串的平台兼容性。
QString 直接支持字符串和数字的相互转换;直接支持字符串的大小比较;直接支持不同字符编码间的相互转换;直接支持 std::string 和 std::wstring 的相互转换;直接支持正则表达式的应用。
接下来我们来创建一个示例代码,说明 QString 的基本操作,构建运行后,输出结果如下:

有关别的用法我们就不在赘述,大家可以在帮助里查询。
接下来我们就编写关于在计算器文本框中的显示代码,如下:

在此我们只对 "<-","C",还有正常操作的显示,对于 “=” 操作符暂时不作处理,在后面我们会继续对它进行处理,至此计算器已经具有正常操作的功能。但是我们发现一个小问题,就是它是从左边开始输入的,不符合我们正常的操作。于是乎我们就在代码中 construct 函数里加入这句:
m_edit->setAlignment(Qt::AlignRight);
再次构建运行后,界面正常从右开始显示,如下:

本节的关于计算器的字符串处理的学习就到此为止啦,大家可以下去自己再根据帮助去查询相关的操作。

以上内容来自狄泰软件学院的QT教程,欢迎大家一起来学习,可以加我QQ:243343083,一起学习。狄泰技术交流群:199546072

原文地址:http://blog.51cto.com/12810168/2088220

时间: 2024-11-09 18:48:06

QT之字符串类的相关文章

第十一课、Qt中的字符串类

一.历史遗留的问题及解决方案 1.遗留的问题 (1).C语言不支持真正意义上的字符串 (2).C语言用字符数组和一组函数实现字符串操作 (3).C语言不支持自定义类型,因此无法获得字符串类型 2.解决方案 (1).从c到c++进化过程中引入了自定义类型 (2).在c++中可以通过类来完成字符串的定义 3.标准库STL (1).STL是意义上需要与c++一同发布的标准库 (2).STL是一套以模板技术完成的c++类库 (3).STL包含了常用的算法和数据结构 (4).STL包含了字符串类 4.Qt

为什么不用C++写游戏(这些工作,QT都替开发者解决了,C++没有根类导致太多的问题,也没有字符串类)

当今世界上绝大多数游戏都是C++写的,为什么要说不呢? 要做什么?写游戏. 写游戏首先要考虑些什么?做什么样的游戏,图形.音效.游戏逻辑如何实现. 用C++要先考虑什么?定义跨平台数据类型抽象,实现常用集合类,设计宏实现RTTI,写一个支持Unicode并可以和其他多种字符串类型互相转换的字符串类,自定义内存分配器,写个shared_ptr,组织预编译头文件,设计实现Object基类以处理跨DLL内存管理等问题…… 那么这些和做游戏有什么关系?不做好这些就很难开始写游戏. 做这些要话多少时间?很

QT中字符串QString类型的转换

把QString转换为 double类型 方法1.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. 把QString转换为float形 1.QString str="123.45&qu

【C/C++学院】0817-递归汉诺塔 双层递归 /CPP结构体 /面向过程与面向对象的编程模式/类的常识共用体实现一个类的特征/QT应用于类以及类的常识

递归汉诺塔 双层递归 #include <iostream> void han(int n, char A, char B, char C) { static int num = 1; std::cout << "第" << num << "次"; num++; if (n<1) { return; } else { han(n - 1, A, C, B); std::cout << A <&l

Python 的字符串类子串查找函数

Python 的字符串类有个很好用的函数,可很方便的用于与查找Python字符串类型对象子串相关的操作,具体的API如下: | find(...) | S.find(sub [,start [,end]]) -> int | | Return the lowest index in S where substring sub is found, | such that sub is contained within s[start:end]. Optional | arguments start

Sting 字符串类

一.字符串类String 字符串(string)是由字符构成的一个序列. 1. 构建一个字符串 //直接将字符串直接量看成String对象. String message = "Weclome to JAVA"; //使用字符数组 char[] charArray = { 'G', 'o', 'o', 'd', ' ', 'D', 'a', 'y'}; String message = new String(charArray); String变量存储的是对String对象的引用,St

字符串类的定义和字符串类对象的创建方式

String为字符串类. 其定义如下: public final class String 可以看出,String类是final类型的,是不可继承的.从源代码还可以看出,String从本质上说就是一个char类型的数组. 字符串类对象的声明有两种方式. 第一种,使用new关键字创建. String 变量名=new String("值"); 第二种,直接声明并初始化. String 变量名="值"; 我更喜欢第一种,标准的,所有类的对象的声明都通过  new 类的构造

用 Qt 的 QAudioOutput 类播放 WAV 音频文件

用 Qt 的 QAudioOutput 类播放 WAV 音频文件 最近有一个项目,需要同时控制 4 个声卡播放不同的声音,声音文件很简单就是没有任何压缩的 wav 文件. 如果只是播放 wav 文件,那么 Qt 里简单的 QSound 类是最适合的.但是 QSound 有一个很大的缺陷就是无法选择用哪个声卡.一番研究之后,决定用 QAudioOutput 来播放 WAV 音频文件. 网上也能找到几篇相关的文章,比如: http://blog.csdn.net/qyee16/article/det

(十)常用类库----数值类、字符串类

类库:包含一堆类的方法和常量,便于我们直接调用 (1)数值类Numeric 基类Numeric包含两个子类Integer(整数)和Float(浮点数) 其中Integer(整数)又可以分为两个子类Fixnum(普通整数)和Bignum(大整数) 记住整数和浮点数就行,普通整数和大整数则系统会自动转换 #类型转换puts 1.2.to_iputs 1puts 1.to_fputs "3.2gg".to_iputs "4.55sss".to_f puts 1.5.rou