1

QString をトリミングするためにいくつかの操作を実行していますが、元の文字列には影響を与えたくありません。私は Qt を初めて使用し、const とそうでないものがあるため、さまざまな QString 関数の適切な使用方法について混乱しています。これまでのところ、これは私が持っているものです:

// this needs to be const so it doesn't get modified.
// code later on is depending on this QString being unchanged
const QString string = getString();

呼び出す必要があるメソッドは、、、QString::simplified()およびQString::remove()ですQString::trimmed()。紛らわしい部分は、これsimplified()を行う正しい方法は何かということです。オリジナルをコピーし、コピーに直接変更を加えることを念頭に置いて、これは私が持っているものです:trimmed()constremove()

// simplified() is a const function but no problem because I want a copy of it
QString copy = string.simplified(); 

// remove is non-const so it operates on the handle object, which is what I want
copy.remove( "foo:", Qt::CaseInsensitive );

// trimmed() is const, but I want it to affect the original
copy = copy.trimmed();

copy = copy.trimmed()このケースを処理する正しい方法を使用していますか? これは、次の使用のために copy be trimmed() を持つという私の目標を達成しますか? これを行うためのより良い (よりエレガントで、より効率的で、より Qtish な) 方法はありますか?

QString Qt ドキュメントを確認しましたが、これらの質問に十分に答えることができませんでした。

4

1 に答える 1