loading...
配置QT的c++和py交叉编译环境
发表于:2025-03-23 |
字数统计: 517 | 阅读时长: 2分钟 | 阅读量:

配置QT的工具链

找到你安装python的目录,在这里我的是C:\Users\glass\AppData\Local\Programs\Python\Python310文件夹复制include文件夹和libs文件夹
配置QT的python工具链
创建一个新的隔离环境,并将include文件夹和libs文件夹,复制进入新的隔离环境
配置QT的python工具链
进入QT打开最上方工具,点击选项
在步骤3中点击添加目录,添加工具,双击可以修改名字,这里我都修改成了python3.10
配置QT的python工具链
修改参数

点击apply应用配置

测试工具链

新建一个QT for Python -EMPTY工程,注释所有内容,写入print(“test”)
测试配置的python工具链
点击上方的工具运行
测试配置的python工具链

链接python文件

目录下新建一个xxx.py
测试配置的python工具链
写入如下代码
测试配置的python工具链

1
2
def test0():
print("test")

进入QT目录,修改QT的.pro文件,新增三条语句,运行

1
2
3
DEPENDPATH += -I E:\Project\Take_orders\common_python_Interpreter\include(之前隔离解释器的路径)
INCLUDEPATH += -I E:\Project\Take_orders\common_python_Interpreter\include(之前隔离解释器的路径)
LIBS += -LE:\Project\Take_orders\common_python_Interpreter\libs -lpython310(之前隔离解释器的路径)

在main.c内添加头文件Python.h,Python.h需要在QApplication之前

1
#include <Python.h>

在main()内添加如下函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();

SQL_Connect SQL_Connect;
//初始化python模块
Py_Initialize();
if ( !Py_IsInitialized() ){
return -1;
}
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.argv = ['python.py']");
PyRun_SimpleString("sys.path.append('./')");


//导入mysql.py模块
PyObject* pModule = PyImport_ImportModule("mysql");
if (!pModule) {
printf("Cant open python file!\n");
return -1;
}
//获取scriptSecond模块中的temperImg函数
PyObject* pFunhello= PyObject_GetAttrString(pModule,"test0");
//注释掉的这部分是另一种获得scriptSecond模块中的temperImg函数的方法
// PyObject* pDict = PyModule_GetDict(pModule);
// if (!pDict) {
// printf("Cant find dictionary.\n");
// return -1;
// }
// PyObject* pFunhello = PyDict_GetItemString(pDict, "temperImg");

if(!pFunhello){
std::cout<<"Get function hello failed"<<std::endl;
return -1;
}
//调用temperImg函数
PyObject_CallFunction(pFunhello,NULL);
//结束,释放python
Py_Finalize();


return a.exec();
}

测试配置的python工具链

将py文件复制进入生成的可执行程序的目录内
测试配置的python工具链
再次运行,发现py脚本成功运行
测试配置的python工具链

下一篇:
常用的使用技巧