首页 新闻 会员 周边

有关 C++ 扩展增强 Python 问题

0
悬赏园豆:10 [已解决问题] 解决于 2022-07-16 17:25

我最近做开源项目,给自己的软件作 Python 支持插件。我使用官方的作为支持,然后做测试的时候发现挺奇怪的一件事情:

我做的测试脚本:

import WingPlgService

def main():
    if WingPlgService.requestControl() :
        WingPlgService.infoPrint("Yes!")
        WingPlgService.requestRelease()
    else:
        WingPlgService.infoPrint("No!")
    WingPlgService.infoPrint("Don't Know!")

相关接口代码:

#define PyBoolRETURN(b)                                                        \
  if (b) {                                                                     \
    Py_RETURN_TRUE;                                                            \
  } else {                                                                     \
    Py_RETURN_FALSE;                                                           \
  }

PyObject *PlgInterface::requestControl(PyObject *self, PyObject *args) {
  Q_UNUSED(self);
  int timeout = 1500;
  if (PyArg_Parse(args, "i", &timeout)) {
    PyBoolRETURN(plg->requestControl(timeout));
  }
  PyBoolRETURN(plg->requestControl());
}

进行测试脚本之后,函数requestControl被调用成功,但是我的测试结果输出既没输出Yes!,也没输出No!,也没输出Don't Know!infoPrint为我拓展函数,作用是输出字符串显示,单独测试正常通过)。
我还想让插件支持调试功能,请问有没有解决方案以供参考,我会考虑提高豆豆数量。

问题补充:

插件开源地址:https://gitee.com/wingsummer/wing-hex-py

寂静的羽夏的主页 寂静的羽夏 | 小虾三级 | 园豆:1803
提问于:2022-07-14 21:23
< >
分享
最佳答案
0

换了一个框架试试成功了,功能更加强大,虽然没找到调试功能,PythonQT 真香。

寂静的羽夏 | 小虾三级 |园豆:1803 | 2022-07-16 17:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册