佛山异形折弯: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 - 把空的部分看做就像它们不存在一样,也就是说它们不被考虑为有关的start和end。
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个字符的深度复制的字符串。
如果unicode和length为0,那么一个零字符串被创建。
如果只是unicode为0,字符串为空,但是被分配为length个字符空间——无论如何QString可以自动扩展,但是这也许会在一些情况下提高速度。我们建议根据这个目的使用简单的构造函数和setLength(),因为它的结果是有更多的可读代码。
也可以参考isNull()和setLength()。
QString::QString ( const char * str )
构造一个被解释为经典C字符串的str的深度复制的字符串。
如果str,那么一个零字符串被创建。
这是一个抛出构造函数,但是它是完全安全的:把一个Latin1的const 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来替换最低层出现的%i(i为'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,并且必须在2到36之间。
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,并且必须在2到36之间。
QString QString::arg ( int a, int fieldwidth = 0, int base = 10 ) const
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
a被基于base表示,默认为10,并且必须在2到36之间。
QString QString::arg ( uint a, int fieldwidth = 0, int base = 10 ) const
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
a被基于base表示,默认为10,并且必须在2到36之间。
QString QString::arg ( short a, int fieldwidth = 0, int base = 10 ) const
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
a被基于base表示,默认为10,并且必须在2到36之间。
QString QString::arg ( ushort a, int fieldwidth = 0, int base = 10 ) const
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
a被基于base表示,默认为10,并且必须在2到36之间。
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 - 使用e或f格式,看哪一个更简练
G - 使用E或f格式,看哪一个更简练
在所有的情况下,小数点之后数字的个数等于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 ) [静态]
对s1和s2进行词典比较,如果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.cpp和mdi/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.cpp和network/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.cpp和xform/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.cpp、chart/chartform.cpp、chart/chartform_canvas.cpp、network/networkprotocol/nntp.cpp、qmag/qmag.cpp和qwerty/qwerty.cpp。
bool QString::isNull () const
如果字符串为零,返回真。零字符串总是空的。
QString a; // a.unicode() == 0,a.length() == 0
a.isNull(); // 真,因为a.unicode() == 0
a.isEmpty(); // 真
也可以参考isEmpty()和length()。
实例:i18n/main.cpp和qdir/qdir.cpp。
const char * QString::latin1 () const
返回字符串的Latin-1表述。注意如果字符串包含非Latin-1字符,返回值是不确定的。如果你想把字符串转化为Unicode以为的格式,请参考QTextCodec类。
这个函数主要对于使用Unicode的开机时的老程序有用处。
只要源字符串的一个未修改复制存在,这个结果就保持有效。
也可以参考utf8()和local8Bit()。
实例:fileiconview/qfileiconview.cpp和network/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.cpp、network/networkprotocol/nntp.cpp、rot13/rot13.cpp和themes/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 ) [静态]
对s1和s2进行比较,如果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.cpp、qmag/qmag.cpp和themes/themes.cpp。
QString QString::number ( long n, int base = 10 ) [静态]
一个把数字n转换为字符串的方便函数,n被基于base表示,默认为10,并且必须在2到36之间。
long a = 63;
QString str = QString::number( a, 16 ); // str == "3f"
QString str = QString::number( a, 16 ).upper(); // str == "3F"
也可以参考setNum()。
实例:action/application.cpp、application/application.cpp、chart/chartform.cpp、fonts/simple-qfont-demo/viewer.cpp、mdi/application.cpp和sql/overview/extract/main.cpp。