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 回答