QCoreApplication::arguments() 返回當前應用程式的命令列參數列表(QStringList),第一個元素通常為可執行檔路徑,後續元素為傳入的參數。
arguments()[0]:程式完整路徑(如 C:/MyApp/MyApp.exe)。arguments()[1] 及之後:使用者傳入的命令列參數。arguments()[1] 存取會越界,需先判斷 size()。Windows 上雙擊執行檔啟動時,通常無額外參數,故 arguments().size() == 1。若需測試參數,請在「命令提示字元」或捷徑「目標」欄位加入參數:
MyApp.exe param1 param2
QT 內部將 argc/argv 封裝為 QStringList,兩者資料來源相同。使用 arguments() 可避免手動處理字元編碼轉換,支援 Unicode 參數。
// 錯誤:直接存取 [1] 導致越界
QString secondArg = QCoreApplication::arguments()[1];
// 正確:先判斷長度
QStringList args = QCoreApplication::arguments();
if (args.size() > 1) {
QString secondArg = args[1];
// 處理參數...
}
詳細規格請參閱 QT 4.8 官方文件。