佛山异形折弯:Qt QString 类

来源:百度文库 编辑:中财网 时间:2024/04/29 18:02:11

Qt QString 类(转)

2011-10-26 12:40:17| 分类: QT | 标签: |字号 订阅

地址:http://leixiaowei210.blog.163.com/blog/static/3166816620115674426675/

成员类型文档

QString::SectionFlags

QString::SectionDefault - 空的部分被考虑,开始的和结尾的分隔符不被包含并且区分大小写来比较分隔符。

QString::SectionSkipEmpty - 把空的部分看做就像它们不存在一样,也就是说它们不被考虑为有关的startend

QString::SectionIncludeLeadingSep - 在结果字符串中包含开始的分隔符(如果有的话)。

QString::SectionIncludeTrailingSep - 在结果字符串中包含末尾的分隔符(如果有的话)。

QString::SectionCaseInsensitiveSeps - 不区分大小写来比较分隔符。

最后的四个值可以被或运算在一起来形成一个标记。

也可以参考section()


成员函数文档

QString::QString ()

构造一个零字符串。这是一个不被分配任何东西的字符串,也就是说长度和数据指针都为0

也可以参考isNull()

QString::QString ( QChar ch )

构造一个长度为一个字符,内容为给定字符ch的字符串。

QString::QString ( const QString & s )

构造一个s隐含共享的复制。这是短时间的,因为引用计数被使用。

QString::QString ( const QByteArray & ba )

构造一个被解释为经典C字符串的ba深度复制的字符串。

QString::QString ( const QChar * unicode, uint length )

构造一个QChar数组中开始length个字符的深度复制的字符串。

如果unicodelength0,那么一个零字符串被创建。

如果只是unicode0,字符串为空,但是被分配为length个字符空间——无论如何QString可以自动扩展,但是这也许会在一些情况下提高速度。我们建议根据这个目的使用简单的构造函数和setLength(),因为它的结果是有更多的可读代码。

也可以参考isNull()setLength()

QString::QString ( const char * str )

构造一个被解释为经典C字符串的str深度复制的字符串。

如果str,那么一个零字符串被创建。

这是一个抛出构造函数,但是它是完全安全的:把一个Latin1const char*转化到QString保存了所有的信息。当你编译你的应用程序时,你可以通过定义QT_NO_CAST_ASCII来关闭这个构造函数。你可以使用setLatin1()fromLatin1()fromLocal8Bit()fromUtf8()来生成QString。或者无论什么适合你的八位数据的编码方式。

也可以参考isNull()

QString::~QString ()

销毁这个字符串并且如果这是这个字符串的最后一个复制,就释放真实的字符串。

QString & QString::append ( const QString & str )

str添加到字符串中并且返回结果的引用。

string = "Test";

string.append( "ing" ); // string == "Testing"

等于operator+=()

实例:dirview/dirview.cpp

QString & QString::append ( char ch )

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

把字符ch添加到字符串中并且返回结果的引用。

等于operator+=()

QString & QString::append ( QChar ch )

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

把字符ch添加到字符串中并且返回结果的引用。

等于operator+=()

QString QString::arg ( const QString & a, int fieldwidth = 0 ) const

这个函数将返回使用a来替换最低层出现的%ii'1''2'……'9')的字符串。

fieldwidth值指定了填充到a中的最小空间。正值将产生右对齐文本,负值将产生左对齐文本。

QString firstName( "Joe" );

QString lastName( "Bloggs" );

QString fullName;

fullName = QString( "First name is '%1', last name is '%2'" )

.arg( firstName )

.arg( lastName );

// fullName == First name is 'Joe', last name is 'Bloggs'

警告:如果你是用arg()来构造一个想上面实例中的真正的句子,那么这可能导致一些翻译的问题(当你使用tr()函数时)。

如果没有%i模式,一个警告信息(qWarning())被输出并且这个文本被添加到字符串的末尾。这被做为错误恢复的功能并且不应该在正确的代码中出现。

也可以参考QObject::tr()

QString QString::arg ( long a, int fieldwidth = 0, int base = 10 ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

fieldwidth值指定了填充到a中的最小空间。正值将产生右对齐文本,负值将产生左对齐文本。

a被基于base表示,默认为10,并且必须在236之间。

QString str;

str = QString( "Decimal 63 is %1 in hexadecimal" )

.arg( 63, 0, 16 );

// str == "Decimal 63 is 3f in hexadecimal"

QString QString::arg ( ulong a, int fieldwidth = 0, int base = 10 ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

a被基于base表示,默认为10,并且必须在236之间。

QString QString::arg ( int a, int fieldwidth = 0, int base = 10 ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

a被基于base表示,默认为10,并且必须在236之间。

QString QString::arg ( uint a, int fieldwidth = 0, int base = 10 ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

a被基于base表示,默认为10,并且必须在236之间。

QString QString::arg ( short a, int fieldwidth = 0, int base = 10 ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

a被基于base表示,默认为10,并且必须在236之间。

QString QString::arg ( ushort a, int fieldwidth = 0, int base = 10 ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

a被基于base表示,默认为10,并且必须在236之间。

QString QString::arg ( char a, int fieldwidth = 0 ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

a被假设在Latin1字符集中。

QString QString::arg ( QChar a, int fieldwidth = 0 ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

QString QString::arg ( double a, int fieldwidth = 0, char fmt = 'g', int prec = -1 ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

根据fmt指定的格式,参数a被格式化,g为默认情况并且可以为下列之一:

e - 格式化为[-]9.9e[+|-]999

E - 格式化为[-]9.9E[+|-]999

f - 格式化为[-]9.9

g - 使用ef格式,看哪一个更简练

G - 使用Ef格式,看哪一个更简练

在所有的情况下,小数点之后数字的个数等于prec指定的精度。

double d = 12.34;

QString ds = QString( "'E' format, precision 3, gives %1" )

.arg( d, 0, 'E', 3 );

// ds == "1.234E+001"

const char * QString::ascii () const

这个函数是废弃的。它的提供只是为了保证旧代码能够工作。我们强烈建议在新代码中不要使用它。

这个函数简单的调用latin1()并且返回结果。

实例:network/networkprotocol/nntp.cpp

QChar QString::at ( uint i ) const

返回在索引i处的字符,或者如果i超过字符串的长度返回0

const QString string( "abcdefgh" );

QChar ch = string.at( 4 );

// ch == 'e'

如果QString不是常量(也就是const QString)或者const&(也就是const QString&),那么at()的非常量重载将被用来替代。

QCharRef QString::at ( uint i )

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

这个函数返回在索引i处的字符的引用。这个结果引用在这之后可以被分配,或者立即使用,但是一旦超过原字符串进行根多的修改,它将会变为无效。

如果i超过了字符串的长度,那么这个字符串将会被使用QChar::null扩大。

int QString::compare ( const QString & s1, const QString & s2 ) [静态]

s1s2进行词典比较,如果s1小于、等于或者大于s2,就返回小于、等于或者大于0的整数。

这个比较是专有的基于字符的数字Unicode值并且非常快,但是不是人们所期待的。排序用户界面字符串请考虑使用QString::localeAwareCompare()

int a = QString::compare( "def", "abc" ); // a > 0

int b = QString::compare( "abc", "def" ); // b < 0

int c = QString::compare(" abc", "abc" ); // c == 0

int QString::compare ( const QString & s ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

对这个字符串和s进行词典比较,如果它小于、等于或者大于s,就返回小于、等于或者大于0的整数。

void QString::compose ()

注意这个函数在Qt 3.0中不被支持并且仅仅用于实验和说明目的。它主要是关注于阿拉伯的和其它多成分文本的实验。

适用于可能带连字的QString。当多成分文本需要表现缺乏象形字的字体时非常有用,但是它也可以制造像QChar(0x0041)'A')和QChar(0x0308)Unicode accent diaresis),给定的QChar(0x00c4)(德语的A元音变音)。

QChar QString::constref ( uint i ) const

返回在索引i处的QChar的值。

等于at(i)

也可以参考ref()

int QString::contains ( QChar c, bool cs = TRUE ) const

返回在这个字符串中字符c出现的次数。

如果cs为真,那么匹配是区分大小写的。如果cs为假,那么匹配是不区分大小写的。

QString string( "Trolltech and Qt" );

int i = string.contains( 't', FALSE ); // i == 3

实例:fileiconview/qfileiconview.cppmdi/application.cpp

int QString::contains ( char c, bool cs = TRUE ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

int QString::contains ( const char * str, bool cs = TRUE ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

返回在这个字符串中字符串str出现的次数。

如果cs为真,那么匹配是区分大小写的。如果cs为假,那么匹配是不区分大小写的。

int QString::contains ( const QString & str, bool cs = TRUE ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

返回在这个字符串中str出现的次数。

如果cs为真,那么匹配是区分大小写的。如果cs为假,那么匹配是不区分大小写的。

这个函数计算重叠的字符串,所以在下面的实例中,“bananas”中有两个“ana”的实例。

QString str( "bananas" );

int i = str.contains( "ana" ); // i == 2

也可以参考findRev()

int QString::contains ( const QRegExp & rx ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

返回在字符串中正则表达式rx出现的次数。

这个函数计算重叠的字符串,所以在下面的实例中,有四个“ana”或者“ama”的实例。

QString str = "banana and panama";

QRegExp rxp = QRegExp( "a[nm]a", TRUE, FALSE );

int i = str.contains( rxp ); // i == 4

也可以参考find()findRev()

QString QString::copy () const

这个函数是废弃的。它的提供只是为了保证旧代码能够工作。我们强烈建议在新代码中不要使用它。

Qt 2.0和以后的版本中,对这个函数的所有调用都是不需要的。只要移除它们就可以了。

const char * QString::data () const

这个函数是废弃的。它的提供只是为了保证旧代码能够工作。我们强烈建议在新代码中不要使用它。

返回以零结尾的经典的C字符串的指针。

Qt 1.x中,这将返回按自己顺序允许直接维护的字符串的char*。在Qt 2.x中,QString是一个Unicode字符串,char*变换构造了一个临时字符串,并且因此直接字符处理是没有意义的了。

bool QString::endsWith ( const QString & s ) const

如果字符串以s结尾,返回真,否则返回假。

也可以参考startsWith()

实例:chart/main.cpp

QString & QString::fill ( QChar c, int len = -1 )

填充字符串为len个字符的值c,并且返回字符串的引用。

如果len为负数(默认),当前字符串长度被使用。

QString str;

str.fill( 'g', 5 ); // string == "ggggg"

int QString::find ( const QRegExp & rx, int index = 0 ) const

从位置index开始,找到常量正则表达式rx第一次出现的位置。如果index-1,搜索从最后一个字符开始,如果是-1,从紧挨着最后一个字符的字符开始,依此类推。(对于反向搜索也可以参考findRev()。)

返回rx第一次出现的位置,如果rx没有被找到,返回-1

QString string( "bananas" );

int i = string.find( QRegExp("an"), 0 ); // i == 1

也可以参考findRev()replace()contains()

实例:network/mail/smtp.cpp

int QString::find ( QChar c, int index = 0, bool cs = TRUE ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

从位置index开始,找到字符c第一次出现的位置。如果index-1,搜索从最后一个字符开始,如果是-1,从紧挨着最后一个字符的字符开始,依此类推。(对于反向搜索也可以参考findRev()。)

如果cs为真,那么匹配是区分大小写的。如果cs为假,那么匹配是不区分大小写的。

返回c第一次出现的位置,如果c没有被找到,返回-1

int QString::find ( char c, int index = 0, bool cs = TRUE ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

从位置index开始,找到字符c第一次出现的位置。

如果cs为真,那么匹配是区分大小写的。如果cs为假,那么匹配是不区分大小写的。

int QString::find ( const QString & str, int index = 0, bool cs = TRUE ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

从位置index开始,找到字符串str第一次出现的位置。如果index-1,搜索从最后一个字符开始,如果是-1,从紧挨着最后一个字符的字符开始,依此类推。(对于反向搜索也可以参考findRev()。)

如果cs为真,那么匹配是区分大小写的。如果cs为假,那么匹配是不区分大小写的。

返回str第一次出现的位置,如果str没有被找到,返回-1

int QString::find ( const char * str, int index = 0 ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

等于find(QString(str), index)

int QString::findRev ( const char * str, int index = -1 ) const

等于findRev(QString(str), index)

int QString::findRev ( QChar c, int index = -1, bool cs = TRUE ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

从位置index开始并且反向搜索,找到字符c第一次出现的位置。如果index-1,搜索从最后一个字符开始,如果是-1,从紧挨着最后一个字符的字符开始,依此类推。

返回c第一次出现的位置,如果c没有被找到,返回-1

如果cs为真,那么匹配是区分大小写的。如果cs为假,那么匹配是不区分大小写的。

QString string( "bananas" );

int i = string.findRev( 'a' ); // i == 5

int QString::findRev ( char c, int index = -1, bool cs = TRUE ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

从位置index开始并且反向搜索,找到字符c第一次出现的位置。

如果cs为真,那么匹配是区分大小写的。如果cs为假,那么匹配是不区分大小写的。

int QString::findRev ( const QString & str, int index = -1, bool cs = TRUE ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

从位置index开始并且反向搜索,找到字符串str第一次出现的位置。如果index-1,搜索从最后一个字符开始,如果是-1,从紧挨着最后一个字符的字符开始,依此类推。

返回str第一次出现的位置,如果str没有被找到,返回-1

如果cs为真,那么匹配是区分大小写的。如果cs为假,那么匹配是不区分大小写的。

QString string("bananas");

int i = string.findRev( "ana" ); // i == 3

int QString::findRev ( const QRegExp & rx, int index = -1 ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

从位置index开始并且反向搜索,找到正则表达式rx第一次出现的位置。如果index-1,搜索从最后一个字符开始,如果是-1,从紧挨着最后一个字符的字符开始,依此类推。

返回rx第一次出现的位置,如果rx没有被找到,返回-1

QString string( "bananas" );

int i = string.findRev( QRegExp("an") ); // i == 3

也可以参考find()

QString QString::fromLatin1 ( const char * chars, int len = -1 ) [静态]

返回从chars的前len个字符解码得到的Unicode字符串,忽略chars的其余字符。如果len-1,那么chars的长度将被使用。如果len大于chars的长度,那么chars的长度将被使用。

这个和QString(const char*)构造函数一样,但是如果你在编译的时候定义了QT_NO_CAST_ASCII,你可以使那个构造函数不可见,在这种情况下你可以使用这个函数来从Latin-1文本中明显地创建一个QString

QString str = QString::fromLatin1( "123456789", 5 );

// str == "12345"

实例:listbox/listbox.cppnetwork/mail/smtp.cpp

QString QString::fromLocal8Bit ( const char * local8Bit, int len = -1 ) [静态]

返回从local8Bit的前len个字符解码得到的Unicode字符串,忽略local8Bit的其余字符。如果len-1,那么local8Bit的长度将被使用。如果len大于chars的长度,那么local8Bit的长度将被使用。

QString str = QString::fromLocal8Bit( "123456789", 5 );

// str == "12345"

local8Bit被假设使用本地指定的格式编码的。

关于Unicode字符串的编码/解码更多变化请参考QTextCodec

QString QString::fromUtf8 ( const char * utf8, int len = -1 ) [静态]

返回从utf8的前len个字符解码得到的Unicode字符串,忽略utf8的其余字符。如果len-1,那么utf8的长度将被使用。如果len大于chars的长度,那么utf8的长度将被使用。

QString str = QString::fromUtf8( "123456789", 5 );

// str == "12345"

关于Unicode字符串的编码/解码更多变化请参考QTextCodec

实例:fonts/simple-qfont-demo/viewer.cpp

QString & QString::insert ( uint index, const QString & s )

s插入到字符串的index位置之前。

如果index超过字符串的结尾,字符串被填充空格扩展到index长度并且然后s被添加,返回这个字符串的引用。

QString string( "I like fish" );

str = string.insert( 2, "don't " );

// str == "I don't like fish"

也可以参考remove()replace()

实例:themes/themes.cppxform/xform.cpp

QString & QString::insert ( uint index, const QChar * s, uint len )

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

s中的字符插入到字符串的index位置之前len次并且返回这个字符串的引用。

QString & QString::insert ( uint index, QChar c )

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

c插入到字符串的index位置之前并且返回这个字符串的引用。

如果index超过字符串的结尾,字符串被填充空格(ASCII码为32)扩展到index长度并且然后s被添加,返回这个字符串的引用。

QString & QString::insert ( uint index, char c )

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

index位置插入字符c

bool QString::isEmpty () const

如果字符串为空,也就是如果length() == 0,返回真。因此,零字符串也是空字符串。

QString a( "" );

a.isEmpty(); //

a.isNull(); //

QString b;

b.isEmpty(); //

b.isNull(); //

也可以参考isNull()length()

实例:addressbook/mainwindow.cppchart/chartform.cppchart/chartform_canvas.cppnetwork/networkprotocol/nntp.cppqmag/qmag.cppqwerty/qwerty.cpp

bool QString::isNull () const

如果字符串为零,返回真。零字符串总是空的。

QString a; // a.unicode() == 0a.length() == 0

a.isNull(); // 真,因为a.unicode() == 0

a.isEmpty(); //

也可以参考isEmpty()length()

实例:i18n/main.cppqdir/qdir.cpp

const char * QString::latin1 () const

返回字符串的Latin-1表述。注意如果字符串包含非Latin-1字符,返回值是不确定的。如果你想把字符串转化为Unicode以为的格式,请参考QTextCodec类。

这个函数主要对于使用Unicode的开机时的老程序有用处。

只要源字符串的一个未修改复制存在,这个结果就保持有效。

也可以参考utf8()local8Bit()

实例:fileiconview/qfileiconview.cppnetwork/networkprotocol/nntp.cpp

QString QString::left ( uint len ) const

返回包含字符串最左面的len个字符的子字符串。

如果len超过字符串的长度,则整个字符串被返回。

QString s = "Pineapple";

QString t = s.left( 4 ); // t == "Pine"

也可以参考right()mid()isEmpty()

实例:themes/themes.cpp

QString QString::leftJustify ( uint width, QChar fill = ' ', bool truncate = FALSE ) const

返回一个长度为width的,包含这个字符串,并且用fill填补的字符串。

如果truncate为假并且字符串的长度超过width,那么返回的字符串是这个字符串的复制。

如果truncate为真并且字符串的长度超过width,那么这个字符串的复制中超过width长度的任何字符都被移除并且这个复制被返回。

QString s( "apple" );

QString t = s.leftJustify( 8, '.' ); // t == "apple..."

也可以参考rightJustify()

uint QString::length () const

返回字符串的长度。

零字符串和空字符串的长度都为0

也可以参考isNull()isEmpty()

实例:fileiconview/qfileiconview.cppnetwork/networkprotocol/nntp.cpprot13/rot13.cppthemes/themes.cpp

QCString QString::local8Bit () const

返回被编码为本地指定格式的字符串。在X11上,这是QTextCodec::codecForLocale()。在Windows上,它是系统定义的编码方式。在Mac OS X上,总是使用utf8作为编码方式。

关于Unicode字符串的编码/解码更多变化请参考QTextCodec

也可以参考QString::fromLocal8Bit()latin1()utf8()

int QString::localeAwareCompare ( const QString & s1, const QString & s2 ) [静态]

s1s2进行比较,如果s1小于、等于或者大于s2,就返回小于、等于或者大于0的整数。

这个比较是基于本地的并且也是基于平台的方式。使用这个函数可以把排好序的字符串列表呈现给用户。

也可以参考QString::compare()QTextCodec::locale()

int QString::localeAwareCompare ( const QString & s ) const

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

对这个字符串和s进行比较。

QString QString::lower () const

返回由这个字符串转换的小写字符串。

QString string( "TROlltECH" );

str = string.lower(); // str == "trolltech"

也可以参考upper()

实例:scribble/scribble.cpp

QString QString::mid ( uint index, uint len = 0xffffffff ) const

返回包含这个字符串从index位置开始len个字符的字符串。

如果这个字符串为空或者index超出范围,返回零。如果index+len超过这个字符串的长度,返回从index开始的整个字符串。

QString s( "Five pineapples" );

QString t = s.mid( 5, 4 ); // t == "pine"

也可以参考left()right()

实例:network/mail/smtp.cppqmag/qmag.cppthemes/themes.cpp

QString QString::number ( long n, int base = 10 ) [静态]

一个把数字n转换为字符串的方便函数,n被基于base表示,默认为10,并且必须在236之间。

long a = 63;

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

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

也可以参考setNum()

实例:action/application.cppapplication/application.cppchart/chartform.cppfonts/simple-qfont-demo/viewer.cppmdi/application.cppsql/overview/extract/main.cpp