您现在的位置是:主页 > news > 商标设计网址/宁波seo优化公司

商标设计网址/宁波seo优化公司

admin2025/5/7 23:47:32news

简介商标设计网址,宁波seo优化公司,手表品牌排行榜,网站的首页怎么做目录: 1.从Qt中调用py脚本里的一个无参函数,功能:打印"hello python" a)相关配置 b)踩过的一些坑 2.从Qt中调用py脚本里的一个有参函数并接收返回值 ,功能:实现 return ab 3.从py中读取csv文件,并…

商标设计网址,宁波seo优化公司,手表品牌排行榜,网站的首页怎么做目录: 1.从Qt中调用py脚本里的一个无参函数,功能:打印"hello python" a)相关配置 b)踩过的一些坑 2.从Qt中调用py脚本里的一个有参函数并接收返回值 ,功能:实现 return ab 3.从py中读取csv文件,并…

目录:

1.从Qt中调用py脚本里的一个无参函数,功能:打印"hello python"

  a)相关配置

  b)踩过的一些坑

2.从Qt中调用py脚本里的一个有参函数并接收返回值 ,功能:实现 return a+b

3.从py中读取csv文件,并进行一些切片分类处理

4.在py中编写K近邻算法

 

 

正文:

1.首先在Qt中创建一个Qt Widgets Application(当然其他的也行)

 

我电脑里面的是python35,64位的,所以要用64位去编译它,不然会出错。

这里我用的是

 

2.然后在项目中添加一个python文件

 

 

 最后结构目录如下:

 

修改python和c++文件

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#coding=UTF8
def hello():print("Hello Python")

 

修改mian.cpp

#include "mainwindow.h"
#include <QApplication>
#include <Python.h>
#include <QDebug>

int main(int argc, char *argv[])
{QApplication a(argc, argv);
//    MainWindow w;
//    w.show();Py_Initialize();//初始化py模块if ( !Py_IsInitialized() ){return -1;}PyRun_SimpleString("import sys");//设置py脚本的路径PyRun_SimpleString("sys.path.append('./')");//当前路径PyObject* pModule = PyImport_ImportModule("test_py");  // 这里的test_py就是创建的python文件if (!pModule) {qDebug()<< "Cant open python file!\n";return -1;}PyObject* pFunhello= PyObject_GetAttrString(pModule,"func2");  // 这里的hello就是python文件定义的函数if(!pFunhello){qDebug()<<"Get function hello failed";return -1;}PyObject_CallFunction(pFunhello,nullptr);//调用hello函数Py_Finalize();//释放py模块return a.exec();

 

3.运行程序

qmake 然后构建 最后运行

错误1:找不到 python.h

 

出错原因:我们在qt中调用了Python.h,但是没有添加python的相应动态链接库

 解决办法:在.pro工程文件中添加相应的头文件和库文件

 

INCLUDEPATH += D:/Python/include
LIBS += -LD:/Python/libs/-l_tkinter/-lpython3/-lpython35

 

 注意:1)这路径是你自己电脑里装python的文件路径

    2)-L 和-l(这里是小写的L)后面直接跟路径和文件名,不能有空格,不然会报错,LNK1146: 没有用选项“/LIBPATH:”指定的参数

 

 

错误2: error: C2238: 意外的标记位于“;”之前

出现原因:由于QT中定义了slots作为关键了,而python3中有使用slot作为变量,所以有冲突
解决方法:在python的object.h中 slots冲突,因此修改object.h,我的object.h路径:D:\Python\include\object.h

 

 然后保存qmake 构建 运行

出现错误: error: LNK1104: 无法打开文件“python35_d.lib

问题: 无法打开 python36_d.lib 的问题
解决: Anaconda3 的 pyconfig.h 文件中做出修改。 我的pyconfig.h路径:D:\Python\include\pyconfig.h

将315行的,python36_d.lib改成python36.lib

同时注释359行

 

噢,对了,因为我在前面设置加载py是 ''./''所以是在当前文件夹下面

需要在项目中取消Shadow bulid的勾选,让debug文件在当前文件夹下,养成这个好习惯,不然以后老是会出现找不到xxxx而出错

 

 

  

OK,然后在qmake 编译 运行

  

 

转载于:https://www.cnblogs.com/Laohou/p/10635773.html