【发布时间】:2020-11-28 22:27:21
【问题描述】:
我正在使用 Python 3.8.5(64 位)和 Dev-C++(代码生成 ISO C++11,包括 Python 的包含文件夹,库也有 Python 的 Lib 文件夹)。
我用 Python 设计了一个非常简单和准系统的 ttk GUI,我所需要的只是让我的 .cpp 调用 GUI 并从中发送和接收数据。
到目前为止,我注意到我需要 #include <Python.h> 并使用 Py_Initialize(); 和 Py_Finalize(); 做一些事情。
我知道我可以从 Python GUI 的源文件中调用 .cpp,但我的老师希望反过来。
有没有办法做到这一点?
编辑 1: 例如,如果我运行以下代码:
#include <iostream>
#include <Python.h>
using namespace std;
int main()
{
Py_Initialize();
cout << Py_GetVersion() << endl;
PyRun_SimpleString("print('C++ back-end & Python front-end')");
Py_Finalize();
return 1;
}
然后我得到错误:Python-C++.cpp:(.text+0x10): undefined reference to `__imp_Py_Initialize', GetVersion, SimpleStringFlags and for Finalize。
我可以在 Visual Studio 中完成吗?我在这里扯头发。
编辑 2:我让嵌入式 Python 在 Visual Studio 中工作。现在,如何使用 .cpp 导入 Interface.Py 以及如何将其用作 GUI?
【问题讨论】:
-
只是“调用 GUI 并从中发送和接收数据”可能是一项艰巨的任务,并且可能具有相当多的含义。请详细说明目标?
-
@DavisHerring 我的作业是模拟一个大学招生计划。我们的教授告诉我们用 Python 创建一个 GUI,然后让 C++(我们可以使用 DevC++ 或 Visual Studio)调用 GUI,因为 GUI 有输入框和按钮,指示用户是学生还是管理员,想要注册还是做其他东西,等等。我只需要能够从 .cpp 调用 Interface.py 并以某种方式链接它们。
-
stackoverflow.com/questions/37238645/… 也许这会对你有所帮助...
-
@HokoLomal 这就是我发现的,但这不是我们教授想要的。她只想编译和运行 .cpp/exe,它可以处理所有事情。它打开 tkinter GUI (Interface.py),GUI 唯一要做的就是接收输入/条目并将其发送到 .cpp。 .cpp 处理所有后端计算。
标签: python c++ user-interface embed