Qt の QRegExp クラスはまったく問題ありませんが、python の re モジュールははるかに柔軟です。また、文字列処理全般についても同じことが言えます。PyQt プログラムで多くの文字列処理を行う必要がある場合は、可能であればすべて Python で行うのが最善の方法です。
QString の変換は非常に簡単です。python2 では、次のことを行うだけです。
string = unicode(qstring)
また、通常は元に戻す必要はありません。QString を必要とする Qt API は、PyQt によって Python 文字列から自動的に変換されます。
QString 変換のより一般的な解決策は、 sip モジュール(PyQt がインストールされている場所ならどこでも利用できるはずです)を使用してグローバルに行うことです。これは、次のように、PyQt モジュールをインポートする前に、PyQt プログラムの開始時に行う必要があります。
import sip
sip.setapi('QString', 2)
from PyQt4 import QtCore, QtGui
これを行った後、通常は QString を返す Qt API は、代わりに Python Unicode オブジェクトを返します。この機能の詳細については、PyQt ドキュメントの互換性のない API の選択を参照してください。
最初はもう少し作業が必要になるかもしれませんが、長期的にはおそらくこの方法が最適です。1 つには、必要に応じて python3 への移植が容易になります。Python3 の場合、バージョン 2 API がデフォルトで選択されているため、上記のsetapi
手順は必要ありません。