您知道在任何需要QString对象作为参数的地方,您只能使用c样式字符串.例如,showMessage函数需要QString.但是我将一个C风格的字符串传递给了这个函数,每件事都没问题.我的意思是在这里我们可以把它想象 "%1 a sample text"成一个QString对象!也许!
statusBar()->showMessage("%1 a sample text");
Run Code Online (Sandbox Code Playgroud)
但为什么我们不能使用这段代码:
statusBar()->showMessage("%1 a sample text".arg("This is "));
Run Code Online (Sandbox Code Playgroud)
因为implicit-conversion到QString将被使用,传递的时候const char[]发挥作用,没有implicit-conversion,没有调用函数,因此,您要调用的方法arg上const char[],这是不正确,构建QString由
statusBar()->showMessage(QString("%1 a sample text").arg("This is "));
Run Code Online (Sandbox Code Playgroud)
一切都会好的.
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |