在操作系统上独立运行Qt QProcess



我正在C++中开发一个关于QT的应用程序,最近我学会了如何使用它,因此我仍然没有完全的信心。我正在努力解决这个问题:我在Linux上开发,但我想让它也能在Windows上运行。C++代码调用Python脚本(向它传递一些参数(,为了实现我的目标,我使用

QDir::separator()

分隔文件夹名称(参数列表包含一些路径(,这对我的目的应该很有用,因为它将自动用于Linux和Windows上的\(如果我错了,请纠正我(。

代码如下:

python_path= my_python_path/python;
script_path=../script.py;

QStringList arguments;
arguments << QString(script_path);
arguments << QString(arg1);
arguments << QString(arg2);

QProcess *p = new QProcess( this );
if (p){
p->start(python_path,arguments);
}

现在我的问题是:在Windows上我应该使用:

python_path= my_python_path/python.exe;

而不是:

python_path= my_python_path/python;

如何处理QT上的这种多平台开发?检测系统并使用if?或者有更好的解决方案吗?

提前感谢!

您可以使用Q_OS宏。类似的东西应该有效(未测试(:

#if defined Q_OS_WIN
QString python_path = "my_python_path/python.exe";
#else
QString python_path = "my_python_path/python";
#endif

最新更新