c++ - 为 C++ 库集成 python 脚本控制台

标签 c++ qt boost binding console-application

我有一个库,其中包含用 C++ 编写的类和公共(public)方法。

我想从用 C++ 和 Qt 编写的交互式程序内部,将命令发送到 Python 语言的解析器,解析器又将它们转换为对我的库的方法和函数的调用。

与 Octave/Matlab 中所做的类似,字符串由解析器处理,然后解析器在内部执行命令。

在我的 C++ 库中的某个地方,我有一个函数

int myFooCPPfunction(int value)
{
    return value*value;
}

然后在我的程序执行期间,我想启动一个控制台并输入 Python 语法:

for i in range(0,20):
    print("%d" % myFooCPPfunction(i))

例如,我给出的命令会更新程序的内部状态。

我认为这是编写链接到 C++ 的 Python 代码的问题。在我看来,像 boost::python 这样的东西已经做到了......我询问你的建议,哪种是编写绑定(bind)的更好方法。

第二点:如何将其集成到从 Qt 应用程序启动的交互式 shell 中? 一些在线项目(例如 QConsole)应该做类似的事情,但 QConsole 似乎是一个非常过时的项目。

谢谢!

最佳答案

PythonQt正是为了这个目的而创建的。

关于c++ - 为 C++ 库集成 python 脚本控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10790068/

相关文章:

C++ : read csv file with fgetc and separate words on semicolon ";"

c++ - Qt 信号/槽不起作用 [非常基本]

c++ - boost .Asio : The I/O operation has been aborted because of either a thread exit or an application request

c++ - 使用 BOOST 测试异常

c++ - 错误: C++ requires a type specifier for all declarations

c++ - 'directed to standard output (cout)' 是什么意思?

c++ - 使用C++制作泛型——共享实现的模板

qt - 如何在Qt函数中获取函数名称

c++ - 为 QlineEdit 设置背景图像时如何在 QLineEdit 中设置文本颜色

c++ - 如何在多核机器上解释 boost::timer::cpu_timer 的输出?