c++ 调用python_C++(Qt)与Python混合编程(二)

在《C++(Qt)与Python混合编程(一)》中总结了如何将python环境集成到Qt中,本次着重总结如何通过C++程序向Python脚本传递参数。

1.通过C++程序向Python脚本传递数字类型、字符串等类型数据

main.cpp

#include 

scirptThree.py

def 

运行结果:

a2951c2ac2a5be5f81a8a7c207d5f4b5.png
运行结果

PyObject_CallMethod()传参类型缩写:

"s"(string) [char *] :将C字符串转换成Python对象,如果C字符串为空,返回NONE。

"s#"(string) [char *, int] :将C字符串和它的长度转换成Python对象,如果C字符串为空指针,长度忽略,返回NONE。

"z"(string or None) [char *] :作用同"s"。

"z#" (stringor None) [char *, int] :作用同"s#"。

"i"(integer) [int] :将一个C类型的int转换成Python int对象。

 "b"(integer) [char] :作用同"i"。

"h"(integer) [short int] :作用同"i"。

"l"(integer) [long int] :将C类型的long转换成Pyhon中的int对象。

"c"(string of length 1) [char] :将C类型的char转换成长度为1的Python字符串对象。

"d"(float) [double] :将C类型的double转换成python中的浮点型对象。

"f"(float) [float] :作用同"d"。

"O&"(object) [converter, anything] :将任何数据类型通过转换函数转换成Python对象,这些数据作为转换函数的参数被调用并且返回一个新的Python对象,如果发生错误返回NULL。

"(items)"(tuple) [matching-items] :将一系列的C值转换成Python元组。

"[items]"(list) [matching-items] :将一系列的C值转换成Python列表。

"{items}"(dictionary) [matching-items] :将一系类的C值转换成Python的字典,每一对连续的C值将转换成一个键值对。

2.通过C++程序将数组向Python脚本传递

main.cpp

#include 

scirptThree.py

def 

运行结果:

d46083c473b3523fc2254a2a04bd2bb8.png
运行结果