如何使用system
以 QString 编写命令的命令?
喜欢:
QString command="chmod -R 777 /opt/QT/examples/code/TestGUI/Data";
system(command);
编译时,我收到此错误:
cannot convert ‘QString’ to ‘const char*’
for argument ‘1’ to ‘int system(const char*)’
任何人都可以提出一些建议吗?
如何使用system
以 QString 编写命令的命令?
喜欢:
QString command="chmod -R 777 /opt/QT/examples/code/TestGUI/Data";
system(command);
编译时,我收到此错误:
cannot convert ‘QString’ to ‘const char*’
for argument ‘1’ to ‘int system(const char*)’
任何人都可以提出一些建议吗?
使用qPrintable()
宏
system(qPrintable(command));
您需要从 QString 中获取原始字符数组。这是一种方法:
system(command.toStdString().c_str());
Ankur Gupta 写道,使用 QProcess 静态函数(链接到描述):
int QProcess::execute ( const QString & program )
在你的情况下:
QProcess::execute ("chmod -R 777 /opt/QT/examples/code/TestGUI/Data");
QProcess 类http://doc.qt.io/qt-5/qprocess.html。这是你需要的。
要更改权限,您可以使用 QFile 的 setPermissions
您可以转换QString
为const char*
.
如果您的字符串是 UTF8,那么您可以使用:
const char* my_command = command.toUtf8().constData() ;
system(my_command);
否则,如果您的字符串不是 UTF8,那么您可以使用:
command.toLatin1().constData() ;
system(my_command);
在这种情况下,第二个就是你想要的。