这是C++中调用python的方法
void MainWindow::menuTwoSlot()
{
Py_Initialize();
if ( !Py_IsInitialized() )
{
printf("Py_Initialize空");
}
PyObject* pModule = PyImport_ImportModule("test_py"); // 这里的test_py就是创建的python文件
if (!pModule) {
std::cout<< "Cant open python file!\n" << std::endl;
printf("pModule空");
}
PyObject* pFunhello= PyObject_GetAttrString(pModule,"main"); // 这里的hellow就是python文件定义的函数
printf("//***---+++//*-/-*-*/*-/-*/-****/-/*-/--/-/-*/**********************************************************");
if(!pFunhello){
std::cout<<"Get function hello failed"<<std::endl;
printf("pFunhello空");
}
PyObject*results= PyObject_CallObject(pFunhello, NULL); //执行func(12345),并将结果返回给results
printf("+++111111111+++%s",results);
printf("---2222222---%p",results);
Py_Finalize();
}
编译得到的结果是;
+++111111111+++---2222222---00000000460f2430
我的python程序main方法如下:
app = QApplication(sys.argv)
a = Demo()
return a
Demon对象是 :class Demo(QWidget)
我这样写好像返回不了?