2012-02-04 42 views
1

我想如下格式使用ARG()函数的QString: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框架的新品牌。

有什么建议吗?

感谢

回答

2

你应该该行变为

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 

我很惊讶,这是导致除以零错误,因为没有先执行除法检查或者捕获异常,否则没有进行除法:)无论如何,我在Qt 4上运行了一个测试代码.7.4/Windows 7/MinGW没有错误,只是错误的结果字符串。

+0

检查您的代码,它的工作原理。很明显arg()函数的误解是什么。来自xprintf()和String.Format()行星的这个语法看起来有点奇怪。然而,我们活着,我们学习:)。非常感谢。 – oldscorpion13 2012-02-04 06:50:43