我是QT新手,所以请原谅,如果我公然在这里做错了什么,但我已经看到了关于此事的所有问题,但看起来似乎无法找到有效的东西。我试图让用户通过输入一个名称来创建一个文件夹,然后'创建'一个名称为的文件夹。我说'创建'是因为它不是完全创建一个,所以在输入名称之前会先创建一个名为“project”的文件夹,并且在输入名称时会重命名它。然而,当我尝试和重命名文件夹与所输入的名字它给了我无法将QString转换为Const Char *
error:C2664: 'int rename(const char *,const char *)' : cannot convert argument 1 from 'QString' to 'const char *'
这里是我的代码:
void MainWindow::on_actionNew_Project_triggered(const char *parameter)
{
//Create project folder
QString projectPath = "D:/Project";
QDir dir(projectPath);
if (!dir.exists()) {
dir.mkpath(projectPath);
}
//Get project name from user
bool result;
QString name = QInputDialog::getText(0, "New Project",
"Enter in project name", QLineEdit::Normal,
"", &result);
if(result && !name.isEmpty()) {
//Rename project folder to user created name
QDir dir(projectPath);
if (dir.exists()) {
rename(projectPath, name); //Gives me error HERE
}
}
}
我将不胜感激,如果你们能帮助,我一直停留在这几个小时。
这个问题不包含[MCVE(http://stackoverflow.com/help/mcve)。 – MrEricSir
由于编译器错误状态,您需要两个'const char *'参数,但是您的'projectPath'和'name'类型为'QString'。 'projectPath.toLatin1()。data()'可以用作参数。下次你应该包括所有相关的函数声明,即在这种情况下你的'rename'方法,以便能够更快地帮助你。 – bkausbk