qt执行python函数 QT Python-成都快上网建站

qt执行python函数 QT Python

在qt程序中怎么运行一个python程序

因为process.start()函数实质是采用命令行中"start XXX"的方式启动XXX。这里的XXX仅仅适用于大部分的exe可执行文件以及一些常用文件。对于py或者pyw文件都不行。

10余年的宜春网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整宜春建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“宜春网站设计”,“宜春网站推广”以来,每个客户项目都认真落实执行。

有两种解决方案:

另外编写一个bat用来启动py文件,就可以使用start启动这个bat就可以了;

使用另一个函数“QDesktopServices::openUrl”来启动py文件。具体使用方法请自行百度。不做过多说明。

怎样用QtCreator编辑运行python脚本

我们首先来看看QtCreator能不能编辑运行python脚本。

可以看到新建项目的选项里并没有python相关的选项,看了并不能用QtCreator来管理python项目。

我们来看看另一个方面,看看QtCreator能不能创建编辑python的相关文件吧。

可以看到,有python的相关选项,点击左侧的Python标签,在中间部分可以看到有Python class和Python file两个选项。

这里我们选择Python file,然后点击choose按钮。然后在名称一栏输入qtpythondemo,然后点击下一步。再点击完成,就进入到编辑界面了。我们来看看情况。

可以看到确实可以编辑python脚本文件。

我们来看看能否运行该脚本,在脚本里输入:

print("hello world")

可是我们发现调试菜单,以及界面左下角的运行等按钮都是灰色的,显然用不了。

如果,QtCreator只能进行编辑的话,还不如直接使用IDLE来的方便,或者任何一个功能稍强大的文本编辑器更好,这样岂不是很鸡肋。

下面,我们给QtCreator添加上执行python脚本的功能。

点击,工具菜单,选项打开选项窗口。

点击界面左侧的 环境,右侧选择 外部工具 标签,再点击下面的 添加 按钮,先选择 添加目录 ,然后将新类别修改为RunPy,这个你可以自己取。

点击选中RunPy,然后再点击 添加 按钮,选择 添加工具。这时右侧的灰色区域就处于可编辑状态了。当然新工具也要命名,就用Python3吧。

下面,我们需要对右侧的内容进行编辑设置。具体如下:

1、说明:可以是任何你喜欢的内容,这里我们输入“运行编辑的Python3脚本”

2、执行档:就是python的可执行文件路径,我的是C:\Python34\python.exe

3、参数:输入 %{CurrentDocument:FilePath}

4、工作目录:%{CurrentDocument:Path}

5、Environment:QT_LOGGING_TO_CONSOLE=1

其他的默认即可。上面带有%的是QtCreator的内置环境变量而已,当我们选中某个文本框时,可以看到文本框右侧有个ABC字母的按钮,点开后可以看到很多环境变量列表。

最后,点击Apply和OK即可。

我们来看看配置完成后的情况。

好了,配置完成后,我们来看看怎么运行。

可是调试菜单和左下角的按钮还是灰色呀,没关系。我们刚才是在外部工具的标签页里添加的设置,那就去外部工具找找吧。

我们看到了 外部-RunPy-Python3 正是我们刚刚设置的。

点击Python3看看有什么会发生。

我们看到,界面下方弹出了 概要信息 窗口,里面正是上面 python 脚本的输出。YES!我们成功了!

qt程序运行py文件

#include Python.h

int main()

{

Py_Initialize();    // 初始化

// 将Python工作路径切换到待调用模块所在目录,一定要保证路径名的正确性

string chdir_cmd = string("sys.path.append(\'/xxxxxxx/')");

// 加载模块

PyObject* moduleName = PyString_FromString("xx"); //模块名,不是文件名

PyObject* pModule = PyImport_Import(moduleName);

// 加载函数

PyObject* pv = PyObject_GetAttrString(pModule, "xxx");

// 调用函数

PyObject* pRet = PyObject_CallObject(pv, xxx);

Py_Finalize();

}

再qt里面包含头文件 , 初始化,引入py文件路劲,导入模块然后就可以执行里面的函数了,如果你想直接执行文件而不需要得到里面的结果直接调用:system("python xxx.py");就好了


本文标题:qt执行python函数 QT Python
转载来于:http://kswjz.com/article/docjisj.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流