原则:能在一个机器上开发的就不在两台机器上!!

  1. 首先需要配置远程QT开发环境

  2. 配置Cmake

    cmake_minimum_required(VERSION 3.14)
    project(qt_test) set(CMAKE_CXX_STANDARD 14) set(CMAKE_AUTOMOC on)
    set(CMAKE_AUTOUIC on)
    set(CMAKE_AUTORCC on)
    set(CMAKE_INCLUDE_CURRENT_DIR on) find_package(PythonLibs 3.5 REQUIRED) √
    find_package(Qt5 COMPONENTS Widgets Core Gui)
    include_directories(${PYTHON_INCLUDE_DIRS}) √ add_executable(qt_test src/main.cpp src/mainwindow.cpp)
    target_link_libraries(qt_test python3.5 Qt5::Core Qt5::Gui Qt5::Widgets ${CMAKE_DL_LIBS} ) √

    其中12、14、17行中添加了Python相关参数。

  3. 之后就可以在*.cpp文件中调用Python文件了

    测试此处就参考该文吧

    此处需要注意设置path路径,否则,在导入py文件时,将一直为null,

    #include <python3.5/python.h>        //此次可以更改Python版本
    
    //使用python之前,要调用Py_Initialize();这个函数进行初始化
    Py_Initialize(); if (!Py_IsInitialized()){
    printf("初始化失败!");
    return 0;
    }
    PyRun_SimpleString("import paramiko");
    PyRun_SimpleString("import sys");
    PyRun_SimpleString("sys.path.append('/home/loong/workdir/py_sftp_test/')");//这一步很重要,修改Python路径,否则将一直为空(null),路径可以设置为Python(sftp.python)文件的上一级目录,或许也可以设置为该项目的目录。虽说是win上开发C++/Python混合编程,当总归要在树莓派上运行,因此设置该项目上传到树莓派上的路径 PyObject * pModule = NULL;//声明变量
    PyObject * pFunc = NULL;// 声明变量
    //PyObject* str = Py_BuildValue( const char )
    //pystring
    pModule = PyImport_ImportModule("sftp");//这里是要调用的文件名sftp.py
    if (pModule==NULL)
    {
    cout << "没找到" << endl;
    }
    pFunc = PyObject_GetAttrString(pModule, "uploder");//这里是要调用的函数名
    PyObject* args = Py_BuildValue("(s)", "../3.m4a");//给python函数参数赋值 此处 int型使用 i, string型使用 s 。更多请参考[https://blog.csdn.net/vampirem/article/details/12948955](https://blog.csdn.net/vampirem/article/details/12948955) PyObject* pRet = PyObject_CallObject(pFunc, args);//调用函数 Py_Finalize();//调用Py_Finalize,这个根Py_Initialize相对应的。
  4. 参考:

    1. https://blog.csdn.net/wmx843230304wmx/article/details/79004437
    2. https://segmentfault.com/q/1010000018242759/revision
    3. https://blog.csdn.net/liulina603/article/details/79442021

Win10 + CLion + 树莓派 + QT 远程开发调用Python的更多相关文章

  1. Win10+ Clion + 树莓派 + QT进行远程qt程序开发

    环境配置 环境配置 Windows上:QT5 + CLion 硬件上:一只可联网.可ssh连接且装有QT5的树莓派 暂时还没想好... 树莓派安装qt sudo apt-get update sudo ...

  2. 在QT C++中调用 Python并将软件打包发布(裸机可运行)

    为了提高工作效率,需要一个可以自动生成多份相关联的word文档免去繁琐复制粘贴工作的软件.最后选定使用QT C++做界面和主要逻辑程序设计,对word的操作使用python写好对应的函数,然后在QT中 ...

  3. Clion + 树莓派/Ubuntu 远程调试

    Clion进行远程调试 在大三下半学期学习Linux高级编程时,老师布置的作业要在linux机器上进行,当时完成的十分艰苦,调试难受的一匹,当时就萌生了这个想法,因为Jetbrains官方文档的晦涩( ...

  4. 树莓派.Qt.打包开发好的程序并运行的方法

    Qt开发的软件, 想要部署在树莓派上运行, 需要进行打包和发布 主要步骤如下: 1. 找1个树莓派用于开发与打包, 所以需要在它上面安装Qt开发环境 树莓派上安装Qt的方法, 可以看这里>> ...

  5. Clion远程开发

    2018.3 开始Clion可以支持远程开发了   官网教程如下: https://www.jetbrains.com/help/clion/remote-projects-support.html ...

  6. QT树莓派交叉编译环开发环境搭建(附多个exe工具下载链接)

    前两天入手了一块2.8’的tft液晶显示屏,于是和树莓派连了一发,成功将命令行显示在了这块小的可怜的屏幕上之后,觉得这屏幕就显示个黑白内容太浪费了,于是考虑开发一个”脸”(图形用户界面,GUI).首先 ...

  7. Pycharm中进行Python远程开发

    http://blog.csdn.net/pipisorry/article/details/52269952 PyCharm提供两种远程调试(Remote Debugging)的方式:    配置远 ...

  8. QT中 使用c++调用python

    最近在做一个项目,开发环境用的是QT c++.项目中使用amazon云服务,调研发现有一个Amazon云的python接口.就有了标题中的问题,需要用C++来调用python脚本. 下面是一个c++调 ...

  9. Linux+CLion+树莓派远程编译时,Cmake编译出现undefined reference to `vtable for MainWindow'的解决办法

    在win+CLion上进行远程qt开发时碰到以下错误: 错误提示: undefined reference to `vtable for MainWindow' 原因:源文件的目录结构有问题?? 解决 ...

随机推荐

  1. 解决python在cmd运行时导入包失败,出现错误信息 "ModuleNotFoundError: No module named ***"

    1.下图为我的自动化测试工程结构图 我通过运行run.bat批处理文件,调用cmd控制台运行start_run.py来开始我的自动化测试,但是出现如下错误: 大家可能知道我们的工程在IDE(Pycha ...

  2. 一步一步搭建 .net core 应用

    前言 近段时间 .net core 大火,公司也打算趁此机会把后续项目迁移到 .net core 平台上,我们下面的一帮人也就跟着大部队,开始狂补 dotnetcore 相关的技术了.此贴主要记录我在 ...

  3. 使用百度echarts仿雪球分时图(四)

    这章节来收拾一下一些小BUG,顺便把各个小提示信息也补上,分时图也就完成了. 上章节末尾提到的一个bug,就是第一个grid跟第三个grid之间是断开的,折线并没有连在一起,所以先来收拾这个问题.没有 ...

  4. Nginx笔记一

      nginx: 为什么选择nginx: nginx是一个高性能的web和反向代理服务器. 作为web服务器:使用更少的资源,支持更多的并发连接,更高的效率,能够支持高达5w个并发连接数的相应, 作为 ...

  5. 简单服务器通信 模型socketserver

    硬件服务器:主机 集群 厂商 :IBM   HP  联想  浪潮 软件服务器 :编写的服务端应用程序,在硬件服务器上运行,一般依托于操作系统,给用户提供一套完整的服务 httpserver --> ...

  6. css 之内容溢出滚动,隐藏滚动条(解决火狐浏览隐藏不了滚动条问题)

    解决火狐浏览隐藏不了滚动条问题 1.里层容器的width多17px,外层容器溢出隐藏,能兼容各个浏览器 .outContainer { width:350px; height:300px; overf ...

  7. docker-compose 编排文件小疑点

    在学习docker-compose的时候,查看了下st2中的docker-compose.yml文件,有个地方没搞明白 env_file 制定的文件路径,一开始以为是在对应的容器中的conf目录中,但 ...

  8. shutil:高层文件操作

    介绍 shutil模块包括一些高层文件操作,如赋值和归档 复制文件 import shutil ''' copyfile将源文件的内容复制到目标文件,如果没有权限写目标文件,则会产生一个IOError ...

  9. Linux磁盘及文件系统管理4

    文件系统的使用: 首先要“挂载”:mount命令和umount命令 根据文件系统之外的其它文件系统要想能够被访问,都必须通过“关联”到根文件系统上的某个目录来实现,此关联操作即为“挂载”:此目录即为“ ...

  10. java——jdbc调用存储过程

    1,加载驱动: 2,获取连接 3,设置参数 4,执行: 5,释放连接 普通jdbc的执行过程: conn.prepareCall() 上面是一个调用存储过程的示例.