我是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