2

次のように arg() 関数を使用して QString をフォーマットしようとしています。

QColor color = QColorDialog::getColor(Qt::blue, this);

....

QString tStr = QString("R: %1 G: %2 B: %3").arg( color.red(), color.green(), color.blue());

ここで、「ゼロ例外による整数除算」が発生します。

背景: VS 2010 で Qt アドインを使用。Qt フレームワークの新機能。

助言がありますか?

ありがとう

4

1 に答える 1

3

その行を次のように変更する必要があります

QString tStr = QString("R: %1 G: %2 B: %3")
    .arg(color.red()).arg(color.green()).arg(color.blue());

私はあなたのコードがこの過負荷にマッピングされていると仮定することしかできませんarg()

QString QString::arg(int a, int fieldWidth = 0, int base = 10, 
    const QChar & fillChar = QLatin1Char( ' ' )) const

最初に0をチェックしたり、例外をキャッチしたりせずに除算を実行する人はいないため、ゼロ除算エラーが発生することに驚いています:)とにかく、Qt 4.7.4 / Windows 7/MinGWでコードのテストを実行しました。エラー、ちょうど間違った結果文字列。

于 2012-02-04T06:29:49.400 に答える