KDE 4.7 PyKDE API Reference

- KDE's Python API

# KStringHandler Namespace Reference

`from PyKDE4.kdecore.KStringHandler import *`

## Detailed Description

This namespace contains utility functions for handling strings.

The functions here are intended to provide an easy way to cut/slice/splice words inside sentences in whatever order desired. While the main focus of KStringHandler is words (ie characters separated by spaces/tabs), the two core functions here (split() and join()) will allow you to use any character as a separator This will make it easy to redefine what a 'word' means in the future if needed.

The function names and calling styles are based on python and mIRC's scripting support.

The ranges are a fairly powerful way of getting/stripping words from a string. These ranges function, for the large part, as they would in python. See the word(const QString&, int) and remword(const QString&, int) functions for more detail.

The methods here are completely stateless. All strings are cut on the fly and returned as new qstrings/qstringlists.

Namespace for manipulating words and sentences in strings

Author:
  Ian Zepp <icszepp@islc.net>

See also:
  KShell

## Functions
QString | capwords (QString text)
QStringList | capwords (QStringList list)
QString | csqueeze (QString str, int maxlen=40)
QString | from8Bit (QString str)
bool | isUtf8 (QString str)
QString | lsqueeze (QString str, int maxlen=40)
int | naturalCompare (QString a, QString b, Qt::CaseSensitivity caseSensitivity=Qt.CaseSensitive)
QString | obscure (QString str)
QStringList | perlSplit (QString sep, QString s, int max=0)
QStringList | perlSplit (QChar sep, QString s, int max=0)
QStringList | perlSplit (QRegExp sep, QString s, int max=0)
QString | preProcessWrap (QString text)
QString | rsqueeze (QString str, int maxlen=40)
QString | tagUrls (QString text)

## Function Documentation

QString capwords | ( | QString | text
| ) |  |  |

Capitalizes each word in the list [hello, there] becomes [Hello, There] (list)

Parameters:

  | list | the list to capitalize

Returns:
  the resulting list

QStringList capwords | ( | QStringList | list
| ) |  |  |

Capitalizes each word in the list [hello, there] becomes [Hello, There] (list)

Parameters:

  | list | the list to capitalize

Returns:
  the resulting list

QString csqueeze | ( | QString | str,
|  | int | maxlen=40
| ) |  |  |

Substitute characters at the middle of a string by "...".

Parameters:

  | str | is the string to modify
  | maxlen | is the maximum length the modified string will have If the original string is shorter than "maxlen", it is returned verbatim

Returns:
  the modified string

QString from8Bit | ( | QString | str
| ) |  |  |

Construct QString from a c string, guessing whether it is UTF8- or Local8Bit-encoded.

Parameters:

  | str | the input string

Returns:
  the (hopefully correctly guessed) QString representation of str

See also:
  KEncodingDetector

bool isUtf8 | ( | QString | str
| ) |  |  |

Guess whether a string is UTF8 encoded.

Parameters:

  | str | the string to check

Returns:
  true if UTF8. If false, the string is probably in Local8Bit.

QString lsqueeze | ( | QString | str,
|  | int | maxlen=40
| ) |  |  |

Substitute characters at the beginning of a string by "...".

Parameters:

  | str | is the string to modify
  | maxlen | is the maximum length the modified string will have If the original string is shorter than "maxlen", it is returned verbatim

Returns:
  the modified string

int naturalCompare | ( | QString | a,
|  | QString | b,
|  | Qt::CaseSensitivity | caseSensitivity=Qt.CaseSensitive
| ) |  |  |

Does a natural comparing of the strings. A negative value is returned if a is smaller than b. A positive value is returned if a is greater than b. 0 is returned if both values are equal.

Parameters:

  | a | first string to compare
  | b | second string to compare
  | caseSensitivity | whether to use case sensitive compare or not

Since:
  4.1

QString obscure | ( | QString | str
| ) |  |  |

Obscure string by using a simple symmetric encryption. Applying the function to a string obscured by this function will result in the original string.

The function can be used to obscure passwords stored to configuration files. Note that this won't give you any more security than preventing that the password is directly copied and pasted.

Parameters:

  | str | string to be obscured

Returns:
  obscured string

QStringList perlSplit | ( | QString | sep,
|  | QString | s,
|  | int | max=0
| ) |  |  |

Split a QString into a QStringList in a similar fashion to the static QStringList function in Qt, except you can specify a maximum number of tokens. If max is specified (!= 0) then only that number of tokens will be extracted. The final token will be the remainder of the string.

Example:

     perlSplit(QRegExp("[! ]"), "Split me up ! I'm bored ! OK ?", 3)
     QStringList contains: "Split", "me", "up ! I'm bored ! OK ?"

Parameters:

  | sep | is the regular expression to use to delimit s.
  | s | is the input string
  | max | is the maximum number of extractions to perform, or 0.

Returns:
  A QStringList containing tokens extracted from s.

QStringList perlSplit | ( | QChar | sep,
|  | QString | s,
|  | int | max=0
| ) |  |  |

Split a QString into a QStringList in a similar fashion to the static QStringList function in Qt, except you can specify a maximum number of tokens. If max is specified (!= 0) then only that number of tokens will be extracted. The final token will be the remainder of the string.

Example:

     perlSplit(QRegExp("[! ]"), "Split me up ! I'm bored ! OK ?", 3)
     QStringList contains: "Split", "me", "up ! I'm bored ! OK ?"

Parameters:

  | sep | is the regular expression to use to delimit s.
  | s | is the input string
  | max | is the maximum number of extractions to perform, or 0.

Returns:
  A QStringList containing tokens extracted from s.

QStringList perlSplit | ( | QRegExp | sep,
|  | QString | s,
|  | int | max=0
| ) |  |  |

Split a QString into a QStringList in a similar fashion to the static QStringList function in Qt, except you can specify a maximum number of tokens. If max is specified (!= 0) then only that number of tokens will be extracted. The final token will be the remainder of the string.

Example:

     perlSplit(QRegExp("[! ]"), "Split me up ! I'm bored ! OK ?", 3)
     QStringList contains: "Split", "me", "up ! I'm bored ! OK ?"

Parameters:

  | sep | is the regular expression to use to delimit s.
  | s | is the input string
  | max | is the maximum number of extractions to perform, or 0.

Returns:
  A QStringList containing tokens extracted from s.

QString preProcessWrap | ( | QString | text
| ) |  |  |

Preprocesses the given string in order to provide additional line breaking opportunities for QTextLayout.

This is done by inserting ZWSP (Zero-width space) characters in the string at points that wouldn't normally be considered word boundaries by QTextLayout, but where wrapping the text will produce good results.

Examples of such points includes after punctuation signs, underscores and dashes, that aren't followed by spaces.

Since:
  4.4

QString rsqueeze | ( | QString | str,
|  | int | maxlen=40
| ) |  |  |

Substitute characters at the end of a string by "...".

Parameters:

  | str | is the string to modify
  | maxlen | is the maximum length the modified string will have If the original string is shorter than "maxlen", it is returned verbatim

Returns:
  the modified string

QString tagUrls | ( | QString | text
| ) |  |  |

This method auto-detects URLs in strings, and adds HTML markup to them so that richtext or HTML-enabled widgets will display the URL correctly.

Parameters:

  | text | the string which may contain URLs

Returns:
  the resulting text