[已解決] 急問,QT如何送兩個参數给執行檔

看板C_and_CPP (C/C++)作者 (MR.黃)時間14年前 (2011/12/19 15:03), 編輯推噓3(308)
留言11則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) QT and C 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 目前製作了QT程式算是一種GUI介面 這個介面可以讓人去選取一些資料 然後把資料餵給C編譯出的執行檔 執行黨會產生一個結果回給QT 目前絕大部分都完成了,但是我想要送兩個參數給執行黨卻做不出來 目前QT程式碼如下 .h黨部分 public: QStringList QinfileNames; QStringList DinfileNames; .cpp部分 void MainWindow::on_openQin_clicked() { QFileDialog dialog(this); dialog.setFileMode(QFileDialog::AnyFile); if (dialog.exec()) { QinfileNames = dialog.selectedFiles(); for (int i = 0; i < QinfileNames.size(); i++) { ui->lineEditQin->setText(QinfileNames.at(i)); } } } void MainWindow::on_openDin_clicked() { QFileDialog dialog(this); dialog.setFileMode(QFileDialog::AnyFile); if (dialog.exec()) { DinfileNames = dialog.selectedFiles(); for (int i = 0; i < DinfileNames.size(); i++) { ui->lineEditDin->setText(DinfileNames.at(i)); } } } //以上是讀取一個檔案名稱,之後要將他丟給.exe檔 void MainWindow::on_Start_clicked() { QProcess *process = new QProcess; ** process->start("start.exe",QinfileNames << " " <<DinfileNames); connect(process,SIGNAL(finished(int)),this,SLOT(OnStart())); } 目前有上網查有人說可以用這樣把東西丟給執行檔(**那行) 不過我執行後程式什麼都沒讀到 我.exe檔的接收是這樣寫的 char *Qin = argv[1]; char *Din = argv[2]; 另用command line來接收指令 我有嘗試宣告一個新的QStringList來接收兩個参數 不過編譯都過不了 希望有人能幫我 感激不盡>< 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.25.118.131 ※ 編輯: jj2564 來自: 163.25.118.131 (12/19 15:05)

12/19 17:48, , 1F
你需要的是字串連接 去找相關的函式來用吧
12/19 17:48, 1F

12/19 20:29, , 2F
看一下Qt的文件吧,QProcess::start第二個參數是吃
12/19 20:29, 2F

12/19 20:30, , 3F
QStringList,不是吃單一字串
12/19 20:30, 3F

12/19 22:14, , 4F
我是送QStringLIst壓,一開始都有宣告!!!
12/19 22:14, 4F

12/19 22:15, , 5F
我也有用QStringList() <<的方式不過也是一樣沒東西T^T。
12/19 22:15, 5F
※ 編輯: jj2564 來自: 163.25.118.131 (12/20 01:53) ※ 編輯: jj2564 來自: 163.25.118.131 (12/20 01:53)

12/20 02:28, , 6F
start 的參數是用 exec 的方式呼叫,不用加空格
12/20 02:28, 6F

12/20 02:30, , 7F
另外,既然兩隻程式都是你寫的,print 一下 argv 應該
12/20 02:30, 7F

12/20 02:30, , 8F
也不會太難 debug
12/20 02:30, 8F

12/20 10:36, , 9F
你的code是QStringList << " " << QStringList
12/20 10:36, 9F

12/20 10:39, , 10F
這樣收到的參數會是List1[0] List1[1] ... List1[N-1]
12/20 10:39, 10F

12/20 10:40, , 11F
" " List2[0] List2[1] ... List2[N-1]
12/20 10:40, 11F
文章代碼(AID): #1Exk7T1A (C_and_CPP)
文章代碼(AID): #1Exk7T1A (C_and_CPP)