QString QString::number ( ulong n, int base = 10 ) [静态]
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
也可以参考setNum()。
QString QString::number ( int n, int base = 10 ) [静态]
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
也可以参考setNum()。
QString QString::number ( uint n, int base = 10 ) [静态]
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
一个把数字n转换为字符串表示的方便制造函数,n被基于base表示,默认为10,并且必须在2到36之间。
也可以参考setNum()。
QString QString::number ( double n, char f = ‘g’, int prec = 6 ) [静态]
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
根据fmt指定的格式,参数n被格式化,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”
也可以参考setNum()。
QString::operator const char * () const
返回latin1()。请确定已经看到这里的警告文档。注意对于你希望严格遵守Unicode的新代码,当你编译你的代码时,你可以定义QT_NO_ASCII_CAST宏来隐藏这个函数,这样自动抛出就不会被完成。这样可以添加你可以抓住在operator!()下描述的编程错误的优点。
bool QString::operator! () const
如果它不是零字符串,返回真,否则返回假。
QString name = getName();
if ( !name )
name = “Rodney”;
注意如果你这样做
QString name = getName();
if ( name )
doSomethingWith(name);
它将调用“operator const char*()”,这是没有效率的,当你希望写遵守Unicode的代码时,你可以定义QT_NO_ASCII_CAST宏。
当你想使用上述的语义时,请使用:
QString name = getName();
if ( !name.isNull() )
doSomethingWith(name);
QString & QString::operator+= ( const QString & str )
把str添加到字符串中并且返回结果的引用。
QString & QString::operator+= ( QChar c )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
把字符c添加到字符串中并且返回结果的引用。
QString & QString::operator+= ( char c )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
把字符c添加到字符串中并且返回结果的引用。
QString & QString::operator= ( QChar c )
设置字符串只包含单个字符c。
QString & QString::operator= ( const QString & s )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
把s的一个浅度复制赋值给这个字符串并且返回这个字符串的引用。这是非常快的,因为字符串没有被实际复制。
QString & QString::operator= ( const char * str )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
把解释为经典C字符串的str的一个深度复制赋值给这个字符串并且返回这个字符串的引用。
如果str为0,那么零字符串被创建。
也可以参考isNull()。
QString & QString::operator= ( const QCString & cs )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
把解释为经典C字符串的cs的一个深度复制赋值给这个字符串并且返回这个字符串的引用。
QString & QString::operator= ( char c )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
设置字符串只包含单个字符c。
QChar QString::operator ( int i ) const
返回在索引i处的字符,或者如果i超过字符串的长度返回QChar::null。
如果QString不是常量(也就是const QString)或者const&(也就是const QString&),那么operator的非常量重载将被使用来替代它。
QCharRef QString::operator ( int i )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
这个函数返回在索引i处的字符的引用。这个结果引用可以立即被赋值或者使用,但是一旦初始字符串发生了改变,它将会变为无效。
如果i超过了字符串的长度,那么字符串将会被使用QChar::null来扩展,这样QCharRef就可以引用字符串中的有效(零)字符。
QCharRef内部类可以被常量QChar使用,但是如果你对它赋值,你就会改变初始字符串(它将会自动分离,因为QString是写时复制)。如果你试图把结果作为QChar以外的东西使用,你将得到编译错误。
QString & QString::prepend ( const QString & s )
在字符串开始处插入s并且返回这个字符串的引用。
等于insert(0, s)。
QString string = “42”;
string.prepend( "The answer is " );
// string == “The answer is 42”
也可以参考insert()。
QString & QString::prepend ( char ch )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
在字符串开始处插入ch并且返回这个字符串的引用。
等于insert(0, ch)。
也可以参考insert()。
QString & QString::prepend ( QChar ch )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
在字符串开始处插入ch并且返回这个字符串的引用。
等于insert(0, ch)。
也可以参考insert()。
QChar & QString::ref ( uint i )
返回在索引i的QChar的引用,如果需要就是用QChar::null扩展字符串。这个结果引用可以立即被赋值或者使用,但是一旦初始字符串发生了改变,它将会变为无效。
QString string(“ABCDEF”);
QChar ch = string.ref( 3 ); // ch == ‘D’
也可以参考constref()。
QString & QString::remove ( uint index, uint len )
从字符串中的index位置开始移除len个字符并且返回这个字符串的引用。
如果index超出字符串的长度,就什么也不发生。如果index在字符串中间,但是index加上len超过字符串的结尾,这个字符串将从index开始被截短。
QString string( “Montreal” );
string.remove( 1, 4 ); // string == “Meal”
也可以参考insert()和replace()。
QString & QString::replace ( uint index, uint len, const QString & s )
从字符串中的index位置开始使用s替换len个字符,并且返回这个字符串的引用。
如果index超出字符串的长度,就什么也不被删除并且s被添加到字符串结尾。如果 index有效并且index加上len超过字符串的结尾,那么这个字符串将从index开始被截短,并且s被添加到字符串结尾。
QString string( “Say yes!” );
string = string.replace( 4, 3, “NO” );
// string == “Say NO!”
也可以参考insert()和remove()。
实例:listviews/listviews.cpp、network/networkprotocol/nntp.cpp和qmag/qmag.cpp。
QString & QString::replace ( uint index, uint len, const QChar * s, uint slen )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
从字符串中的index位置开始使用s中的slen个字符的QChar数据替换len个字符,并且返回这个字符串的引用。
也可以参考insert()和remove()。
QString & QString::replace ( const QRegExp & rx, const QString & str )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
用str替换字符串中出现的每一个正则表达式rx。返回这个字符串的引用。
QString string = “banana”;
string = string.replace( QRegExp(“an”), “” ); // string == “ba”
也可以参考find()和findRev()。
QString QString::right ( uint len ) const
返回包含字符串最右面的len个字符的子字符串。
如果len超过字符串的长度,则整个字符串被返回。
QString string( “Pineapple” );
QString t = string.right( 5 ); // t == “apple”
也可以参考left()、mid()和isEmpty()。
实例:fileiconview/qfileiconview.cpp。
QString QString::rightJustify ( uint width, QChar fill = ’ ', bool truncate = FALSE ) const
返回一个长度为width的,包含fill填补的字符串,后面跟着这个字符串。
如果truncate为假并且字符串的长度超过width,那么返回的字符串是这个字符串的复制。
如果truncate为真并且字符串的长度超过width,那么这个字符串的复制中超过width长度的任何字符都被移除并且这个复制被返回。
QString string( “apple” );
QString t = string.rightJustify( 8, ‘.’ ); // t == “…apple”
也可以参考leftJustify()。
QString QString::section ( QChar sep, int start, int end = 0xffffffff, int flags = SectionDefault ) const
这个函数用来返回字符串的一部分。
这个字符串被看作由字符sep分隔开的顺序的区段。返回的从位置start到位置end(两个都包含)的区段组成的字符串。如果end没有被指定,那么从位置start开始到字符串的结尾的所有区段都被返回。区段是从左面是0、1、2等等计数,或者从右面-1、-2等等计数的。
flags参数可以用来影响这个函数行为的特征,例如是否区分大小写,是否忽略空区段并且如何处理开始和结尾的分隔符,请参考SectionFlags。
QString csv( “forename,middlename,surname,phone” );
QString s = csv.section( ‘,’, 2, 2 ); // s == “surname”
QString path( “/usr/local/bin/myapp” ); // First field is empty
QString s = path.section( ‘/’, 3, 4 ); // s == “bin/myapp”
QString s = path.section( ‘/’, 3, 3, SectionSkipEmpty ); // s == “myapp”
如果start或者end为负数,我们就从字符串的右面开始计数,最右面的是-1,接着是-2,依此类推。
QString csv( “forename,middlename,surname,phone” );
QString s = csv.section( ‘,’, -3, -2 ); // s == “middlename,surname”
QString path( “/usr/local/bin/myapp” ); // First field is empty
QString s = path.section( ‘/’, -1 ); // s == “myapp”
也可以参考QStringList::split()。
实例:chart/element.cpp。
QString QString::section ( char sep, int start, int end = 0xffffffff, int flags = SectionDefault ) const
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
QString QString::section ( const char * sep, int start, int end = 0xffffffff, int flags = SectionDefault ) const
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
QString QString::section ( const QString & sep, int start, int end = 0xffffffff, int flags = SectionDefault ) const
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
这个函数用来返回字符串的一部分。
这个字符串被看作由字符串sep分隔开的顺序的区段。返回的从位置start到位置end(两个都包含)的区段组成的字符串。如果end没有被指定,那么从位置start开始到字符串的结尾的所有区段都被返回。区段是从左面是0、1、2等等计数,或者从右面-1、-2等等计数的。
flags参数可以用来影响这个函数行为的特征,例如是否区分大小写,是否忽略空区段并且如何处理开始和结尾的分隔符,请参考SectionFlags。
QString data( “forenamemiddlenamesurnamephone" );
QString s = data.section( "”, 2, 2 ); // s == “surname”
如果start或者end为负数,我们就从字符串的右面开始计数,最右面的是-1,接着是-2,依此类推。
QString data( “forenamemiddlenamesurnamephone" );
QString s = data.section( "”, -3, -2 ); // s == “middlename**surname”
也可以参考QStringList::split()。
QString QString::section ( const QRegExp & reg, int start, int end = 0xffffffff, int flags = SectionDefault ) const
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
这个函数用来返回字符串的一部分。
这个字符串被看作由正则表达式reg分隔开的顺序的区段。返回的从位置start到位置end(两个都包含)的区段组成的字符串。如果end没有被指定,那么从位置start开始到字符串的结尾的所有区段都被返回。区段是从左面是0、1、2等等计数,或者从右面-1、-2等等计数的。
flags参数可以用来影响这个函数行为的特征,例如是否区分大小写,是否忽略空区段并且如何处理开始和结尾的分隔符,请参考SectionFlags。
QString line( “forename\tmiddlename surname \t \t phone” );
QRegExp sep( “\s+” );
QString s = line.section( sep, 2, 2 ); // s == “surname”
如果start或者end为负数,我们就从字符串的右面开始计数,最右面的是-1,接着是-2,依此类推。
QString line( “forename\tmiddlename surname \t \t phone” );
QRegExp sep( “\s+” );
QString s = line.section( sep, -3, -2 ); // s == “middlename surname”
警告: QRegExp这一部分比其它字符串和字符的重载版本要花费更多。
也可以参考QStringList::split()和simplifyWhiteSpace()。
void QString::setExpand ( uint index, QChar c )
这个函数是废弃的。它的提供只是为了保证旧代码能够工作。我们强烈建议在新代码中不要使用它。
设置在index位置的字符为c并且如果需要使用空格来扩展这个字符串。
这个方法在Qt 3.x中是多余的,因为operator可以在需要的时候扩展字符串。
QString & QString::setLatin1 ( const char * str, int len = -1 )
设置这个字符串为解释为经典的Latin1的C字符串的str。如果len为-1(默认),那么它将被设置为strlen(str)。
如果str为0,那么零字符串被创建。如果str为“”,那么空字符串被创建。
也可以参考isNull()和isEmpty()。
void QString::setLength ( uint newLen )
确保至少newLen个字符被分配给这个字符串,并且设置这个字符串的长度为newLen。任何分配的新空间保留任意的数据。
如果newLen为0,那么这个字符串将变为空,除非这个字符串是零,这种情况下它仍保持为零。
如果不能分配足够的内存,字符串保持不变。
这个函数总是把这个字符串和有同样数据的其它引用分离。
这个函数对于需要构建一个长字符创并且想避免重复重新分配空间的代码很有用。在这个实例中,我们想添加字符串,直到条件为真,并且我们十分确信分配给它的大小是足够大的:
QString result;
int resultLength = 0;
result.setLength( newLen ) // 分配一些空间
while ( … ) {
result[resultLength++] = … // 填充(部分的)空格作为数据
}
result.truncate[resultLength]; // 并且去掉不确定的垃圾
如果newLen是不足的话,最坏的情况就是将会循环将会变慢。
也可以参考truncate()、isNull()、isEmpty()和length()。
QString & QString::setNum ( long n, int base = 10 )
设置字符串为打印的数据n,n是基于base并且返回这个字符串的引用。
base默认为10并且必须在2到36之间。
QString string;
string = string.setNum( 1234 ); // string == “1234”
QString & QString::setNum ( short n, int base = 10 )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。设置字符串为打印的数据n,n是基于base并且返回这个字符串的引用。
base默认为10并且必须在2到36之间。
QString & QString::setNum ( ushort n, int base = 10 )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。设置字符串为打印的数据n,n是基于base并且返回这个字符串的引用。
base默认为10并且必须在2到36之间。
QString & QString::setNum ( int n, int base = 10 )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。设置字符串为打印的数据n,n是基于base并且返回这个字符串的引用。
base默认为10并且必须在2到36之间。
QString & QString::setNum ( uint n, int base = 10 )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。设置字符串为打印的数据n,n是基于base并且返回这个字符串的引用。
base默认为10并且必须在2到36之间。
QString & QString::setNum ( ulong n, int base = 10 )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。设置字符串为打印的数据n,n是基于base并且返回这个字符串的引用。
base默认为10并且必须在2到36之间。
QString & QString::setNum ( float n, char f = ‘g’, int prec = 6 )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
设置字符串为打印的由格式f和精度prec格式化的数据n并且返回这个字符串的引用。
格式f可以为“f”、“F”、“e”、“E”、“g”或者“G”。关于这些格式的解释请参考arg()。
QString & QString::setNum ( double n, char f = ‘g’, int prec = 6 )
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
设置字符串为打印的由格式f和精度prec格式化的数据n并且返回这个字符串的引用。
格式f可以为“f”、“F”、“e”、“E”、“g”或者“G”。关于这些格式的解释请参考arg()。
QString & QString::setUnicode ( const QChar * unicode, uint len )
重新定义字符串的大小为len并且把unicode复制到字符串中。如果unicode为零,什么都不被复制,但是字符串还是被重新定义为len。如果len为0,那么字符串变为零字符串。
也可以参考setLatin1()和isNull()。
QString & QString::setUnicodeCodes ( const ushort * unicode_as_ushorts, uint len )
重新定义字符串的大小为len并且把unicode_as_ushorts复制到字符串中(在一些X11客户端平台上这将进入到二进制缓存通道中)。
如果unicode_as_ushorts为零,什么都不被复制,但是字符串还是被重新定义为len。如果len为0,那么字符串变为零字符串。
也可以参考setLatin1()和isNull()。
QString QString::simplifyWhiteSpace () const
返回一个移除了这个字符串的开始和结尾的空白符号的字符串,并且内部的空白符号都被替代为单一的空格。
空白符号是指任何QChar::isSpace()返回真的字符。这里面包括十进制为9(TAB)、10(LF)、11(VT)、12(FF)、13(CR)和32(Space)的UNICODE字符。
QString string = " lots\t of\nwhite space ";
QString t = string.simplifyWhiteSpace();
// t == “lots of white space”
也可以参考stripWhiteSpace()。
QString & QString::sprintf ( const char * cformat, … )
从一个格式化字符串cformat和一个任意的参数列表安全地构建一个格式化的字符串。
%s转义序列希望一个utf8()编码字符串。格式化字符串cformat希望是一个Latin1的。如果你需要一个Unicode格式字符串,使用arg()来替代。为了完全支持Unicode的类型安全的字符串构建,你可以像这样使用QTextOStream:
QString str;
QString s = …;
int x = …;
QTextOStream( &str ) << s << " : " << x;
对于翻译,特别是如果字符串包含超过一个的转义序列,你应该考虑使用arg()来替代它。这将允许翻译者来控制替换的顺序并且支持Unicode。
也可以参考arg()。
实例:dclock/dclock.cpp、forever/forever.cpp、layout/layout.cpp、qmag/qmag.cpp、scrollview/scrollview.cpp、tooltip/tooltip.cpp和xform/xform.cpp。
bool QString::startsWith ( const QString & s ) const
如果字符串以s开始,返回真,否则返回假。
QString string(“Bananas”);
bool a = string.startsWith(“Ban”); // a == TRUE
也可以参考endsWith()。
QString QString::stripWhiteSpace () const
返回一个移除了这个字符串的开始和结尾的空白符号的字符串,并且内部的空白符号都被替代为单一的空格。
空白符号是指任何QChar::isSpace()返回真的字符。这里面包括十进制为9(TAB)、10(LF)、11(VT)、12(FF)、13(CR)和32(Space)的UNICODE字符。
QString string = " white space ";
QString s = string.stripWhiteSpace(); // s == “white space”
也可以参考simplifyWhiteSpace()。
double QString::toDouble ( bool * ok = 0 ) const
返回由这个字符串转化的double值。
如果转化发生错误,ok被设置为假(除非ok为0,这是默认的)并且0被返回。否则ok被设置为真。
QString string( “1234.56” );
double a = string.toDouble(); // a == 1234.56
也可以参考number()。
float QString::toFloat ( bool * ok = 0 ) const
返回由这个字符串转化的float值。
如果转化发生错误,ok被设置为假(除非ok为0,这是默认的)并且0被返回。否则ok被设置为真。
也可以参考number()。
int QString::toInt ( bool * ok = 0, int base = 10 ) const
返回由这个字符串转化的int值,是基于base的,默认为10并且必须在2到36之间。
如果转化发生错误,ok被设置为假(除非ok为0,这是默认的)并且0被返回。否则ok被设置为真。
QString str( “FF” );
bool ok;
int hex = str.toInt( &ok, 16 ); // hex == 255, ok == TRUE
int dec = str.toInt( &ok, 10 ); // dec == 0, ok == FALSE
也可以参考number()。
long QString::toLong ( bool * ok = 0, int base = 10 ) const
返回由这个字符串转化的long值,是基于base的,默认为10并且必须在2到36之间。
如果转化发生错误,ok被设置为假(除非ok为0,这是默认的)并且0被返回。否则ok被设置为真。
也可以参考number()。
short QString::toShort ( bool * ok = 0, int base = 10 ) const
返回由这个字符串转化的short值,是基于base的,默认为10并且必须在2到36之间。
如果转化发生错误,ok被设置为假(除非ok为0,这是默认的)并且0被返回。否则ok被设置为真。
uint QString::toUInt ( bool * ok = 0, int base = 10 ) const
返回由这个字符串转化的unsigned int值,是基于base的,默认为10并且必须在2到36之间。
如果转化发生错误,ok被设置为假(除非ok为0,这是默认的)并且0被返回。否则ok被设置为真。
也可以参考number()。
ulong QString::toULong ( bool * ok = 0, int base = 10 ) const
返回由这个字符串转化的unsigned long值,是基于base的,默认为10并且必须在2到36之间。
如果转化发生错误,ok被设置为假(除非ok为0,这是默认的)并且0被返回。否则ok被设置为真。
也可以参考number()。
ushort QString::toUShort ( bool * ok = 0, int base = 10 ) const
返回由这个字符串转化的unsigned short值,是基于base的,默认为10并且必须在2到36之间。
如果转化发生错误,ok被设置为假(除非ok为0,这是默认的)并且0被返回。否则ok被设置为真。
void QString::truncate ( uint newLen )
如果newLen小于字符串的长度,那么字符串将从newLen位置被截短。否则就什么也不发生。
QString s = “truncate me”;
s.truncate( 5 ); // s == “trunc”
也可以参考setLength()。
实例:network/mail/smtp.cpp。
const QChar * QString::unicode () const
返回这个字符串的Unicode表述。直到这个字符串被修改,这个结果保持有效。
QString QString::upper () const
返回由这个字符串转换的大写字符串。
QString string( “TeXt” );
str = string.upper(); // t == “TEXT”
也可以参考lower()。
实例:scribble/scribble.cpp和sql/overview/custom1/main.cpp。