如何在C ++(qt)代码中使用python脚本?(网页抓取方面)

How to use python script in c++ (qt) code? (web-scraping aspect)

本文关键字:脚本 python 方面 抓取 网页 代码 qt      更新时间:2023-10-16

我想构建一个允许以实时汇率转换货币的 gui 应用程序。我正在使用MacO和QtCreator(我也有PyCharm和VS Code,但我特别想使用QtCreator来制作我的gui)

首先,我创建了一个 Python 脚本,它可以从 stooq 页面获取实时汇率。我这样做了,因为我想学习网络抓取。 其次,我想为它做一个 qui,我已经知道如何在 C++ 年的 Qt Creator 中使用和编写应用程序。所以,我创建了一个应用程序。第一个想法是将python脚本连接到我的c ++ qt项目。我在互联网上搜索过,但我找到的只是从python脚本创建动态库的想法。我不知道该怎么做,尤其是在QtDesigner中。 所以,我进行了一次头脑风暴,我得出了一个想法。为什么不将我的 python 脚本的输入从 QtWindow 保存到 txt 文件,然后调用 python 脚本,最后将 python 脚本的输出保存到另一个 txt 文件。现在我只需从我的 txt 文件中读取实时汇率。

但我遇到了一个问题。当我调用我的python脚本时,编译器说我没有在脚本中使用包(请求和beautifullsoup)。我检查了是否已在我的计算机上安装了该库(终端 ->"brew 安装请求"、"brew install bs4") 除非我安装了它,否则Qt看不到它。

您是否知道如何说Qt我已经安装了这些东西,或者您能告诉我一种更简单的方法将python脚本添加到c ++ qt代码中,或者您能告诉我一种更简单的Web抓取方法吗?因为,根据我的网络搜索,我没有找到另一种简单的方法来让Gui成为Qt。

(哦,还有一个简单的问题:我如何告诉Qt文件路径?正如你在我的代码中看到的,我不得不过去完整路径,因为Qt没有看到我的文件(我粘贴在源文件夹,编译文件夹和下面的文件夹中)记住 - 我正在使用Mac。我知道在Windows上只有文件名才能工作。

Qt c++中的函数调用Python脚本:

void MainWindow::PythonScriptOpen()
{
std::string filename = "/Users/username/Desktop/programming/Currency_converter/Currency_Converter/currency_converter.py";
std::string command = "python ";
command += filename;
system(command.c_str());
}

错误:

回溯(最近一次调用):文件 "/用户/用户名/桌面/编程/Currency_converter/Currency_Converter/currency_converter.py", 第 3 行,在 导入请求导入错误:没有模块命名请求

您必须按pip(3) install requests安装requests