2015-10-19 33 views
2

我正在使用Qt中的QProcess類在Qt-GUI應用程序和用C語言編寫的程序之間進行通信。當我啓動GUI時,我設置QProcess的工作目錄。QProcess:在運行時重置工作目錄

現在我想知道是否有可能在運行時期間重置QProcess所選的工作目錄。我沒有在QT文檔中找到任何功能。

用戶應該在GUI中輸入一些文件路徑,然後將它們傳遞給C程序(加密程序)。除了在GUI中輸入的文件路徑之外,C程序自己從當前工作目錄加載一些文件。

E.g.用戶想要驗證與簽名一起存儲在目錄A中的文件。來自簽名者的公鑰是目錄B中的。 用戶可以在GUI中輸入公鑰的路徑(工作) 用戶可以輸入路徑到GUI一個新的工作目錄(不起作用

我有一個QPushButton「設置新的工作目錄」發出的信號點擊到SLOT,我呼籲:

// _dataWDict->text() gets the Text Input from a QLineEdit Widget 
// from the _userWidget (= "GUI") 

QString pathWDict = _userWidget->_dataWDict->text(); 
_process->setWorkingDirectory(pathWDict); 

// displays me the output in the GUI 
_userWidget->_log->append(_process->workingDirectory()); 

調用QProcess::setWorkingDirectory聲稱是不同的,但我仍然只能從一開始就訪問工作目錄中的文件。從Qt文檔:「QProcess將啓動此目錄中的過程」

+2

你能解釋你想解決什麼問題嗎?我不是說你需要幫助的解決方案(改變目錄),而是讓你想要「重置」工作目錄的原始問題?相關閱讀:[什麼是XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。 –

+0

'在運行時重置QProcess的選定工作目錄.'您可以從QProcess中運行的可執行文件中執行此操作,但我不相信可以從啓動QProcess的可執行文件中執行此操作,但是您可以使用某種形式的IPC來發出信號在QProcess中運行的程序來更改其文件夾。 – drescherjm

回答

1

根據平臺,您可以使用chdirSetCurrentDirectory。或者爲什麼不是QProcess::setWorkingDirectory

+1

也許'QDir :: setCurrent' – drescherjm

+0

在調用'QProcess :: setWorkingDirectory'聲稱是不同的之後使用'QProcess :: workingDirectory()',但我仍然只能從一開始就訪問工作目錄中的文件。 從Qt-Docs:「'QProcess'將**啓動**進程在這個目錄下」 – SebNag