无法将 QString 转换为 Const Char*

0 c++ qstring qt compiler-errors const-char

我是 QT 的新手,所以如果我在这里公然做错了什么,请原谅我,但我已经查看了这里有关此事的所有问题,但似乎找不到有效的方法。我试图让用户通过输入名称来创建一个文件夹,然后它会使用该名称“创建”一个文件夹。我说“创建”是因为它并不完全是创建一个,它在您输入名称之前首先创建一个名为“project”的文件夹,当您输入名称时它会重命名它。但是,当我尝试使用输入的名称重命名文件夹时,它给了我

错误:C2664:“int rename(const char *,const char *)”:无法将参数1从“QString”转换为“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

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果你们能帮忙,我将不胜感激,我已经在这个问题上坚持了几个小时了。

Vad*_*ché 7

您可以调用QString::toStdString(),然后调用c_str()从 std::string 检索 const char* 。

你的代码看起来像这样:

if (dir.exists()) {
        rename(projectPath.toStdString().c_str(), name);
    }
Run Code Online (Sandbox Code Playgroud)