我正在用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?还是有更好的解决方案?
谢谢!
答案 0 :(得分:0)
您可以使用Q_OS宏。这样的东西应该可以工作(未经测试):
#if defined Q_OS_WIN
QString python_path = "my_python_path/python.exe";
#else
QString python_path = "my_python_path/python";
#endif