QProcess->setArgument()里面放置带有空格的路径,结果用QProcess->strat()执行,会出现在空格处划分
时间: 2024-05-07 19:21:40 浏览: 12
如果你想在 QProcess 中传递带有空格的路径,可以使用引号将路径括起来,这样 QProcess 执行时就会将整个路径视为一个参数。例如:
```
QStringList arguments;
arguments << "C:/Program Files (x86)/MyApp/myexecutable.exe" << "--myarg" << "\"C:/My Documents/My File.txt\"";
myProcess->setProgram("C:/Windows/System32/cmd.exe");
myProcess->setArguments(arguments);
myProcess->start();
```
在上面的示例中,我们将带有空格的路径 `"C:/My Documents/My File.txt"` 用引号括起来,这样 QProcess 执行时就会将整个路径作为一个参数传递给程序。
相关问题
pyqt5 QProcess.start 的路径参数带空格
如果您在`QProcess.start()`中传递了一个带有空格的路径参数,可以将该参数包装在引号中,例如:
```python
import sys
from PyQt5.QtCore import QProcess
if __name__ == '__main__':
app = QApplication(sys.argv)
process = QProcess()
# 参数路径包装在引号中
process.start('"C:/Program Files (x86)/Notepad++/notepad++.exe"')
sys.exit(app.exec_())
```
在这个例子中,我们使用`"C:/Program Files (x86)/Notepad++/notepad++.exe"`作为启动程序的路径参数,并将其包装在引号中以避免空格问题。
如果您需要传递更多参数,您可以将它们作为单个字符串传递,例如:
```python
# 参数路径包装在引号中
process.start('"C:/Program Files (x86)/Notepad++/notepad++.exe" "C:/test.txt"')
```
这将启动Notepad++并打开`C:/test.txt`文件。
qprocess的start会有空格吗
在使用QProcess的start函数时,参数之间是通过空格分隔的。但是,QProcess会自动处理参数中包含空格的情况,所以你不需要在参数中添加额外的空格。
例如,如果你想要启动一个名为"myapp"的可执行文件,并传递两个参数"arg1"和"arg2",你可以这样使用start函数:
```cpp
QProcess process;
process.start("myapp arg1 arg2");
```
在这个例子中,"myapp"和两个参数之间有空格分隔,但你不需要显式地添加空格。QProcess会自动将它们作为独立的参数进行处理。
如果你的参数中包含空格,例如一个参数是"hello world",QProcess会正确地将它识别为单独的参数,而不会将空格作为分隔符。
总之,QProcess的start函数会根据空格来分隔参数,但你不需要手动添加额外的空格。