QString msgText = QString("The file has been saved at %1\sysconf.xml").arg(QApplication::applicationDirPath);
给我上述错误。我之前使用过.arg()
,所以我想知道为什么它会给我这个错误?我代码中的所有其他.arg()
都能正常运行。
答案 0 :(得分:7)
说明
QApplication::applicationDirPath
是一个静态成员函数,要获得您正在寻找的值,您必须将其视为这样,因此;你必须调用这个函数。
目前您正在尝试将函数指针传递给QString::arg
,并且由于编译器无法为此类构造找到合适的重载,因此会引发诊断。
解决方案
QString msgText = QString(...).arg(QApplication::applicationDirPath ());
注意:查看()
之后添加的QApplication::applicationDirPath
。
答案 1 :(得分:1)
尝试实际调用该函数:
QString msgText = QString("The file has been saved at %1\sysconf.xml").arg(QApplication::applicationDirPath());
注意applicationDirPath之后的“()”。
答案 2 :(得分:0)
根据this,您正在传递一个指向静态成员函数applicationDirPath
的指针,而arg
有几个重载,所有这些都是不接受这样的poitner 。看起来您的编译器发现函数指针对参数类型arg
的几次转换过载并且混淆了。你的意思是:
QString msgText = QString("The file has been saved at %1\sysconf.xml")
.arg(QApplication::applicationDirPath());
// ^^--!!