程序员种子 2021-12-05 18:34
浏览 11
已结题

问一下这个C++想得到python运行的窗口对象获取不到

这是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

img

我的python程序main方法如下:
app = QApplication(sys.argv)
a = Demo()
return a

Demon对象是 :class Demo(QWidget)

我这样写好像返回不了?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月13日
    • 创建了问题 12月5日