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

  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. extra bytes at beginning or within zipfile

    主要用文本文档打开看看是否带有#!/bin/bash 修改pom文件<executable>false</executable>

  2. 植物大战僵尸:查找植物叠加种植CALL

    实验目标:我们都知道植物大战僵尸游戏中植物是不可以叠加种植的,也就是一个格子只能种植一个植物,今天我们将实现一个格子里种植无限多的植物. 我们首先需要找到植物的种植CALL,然后在逐步测试观察功能之间 ...

  3. Elastic Search快速上手(4):细节补充

    模糊搜索 可以进行模糊搜索: GET job/type1/_search { "query":{ "fuzzy":{ "title":{ & ...

  4. 路由器WAN口IP显示为10、100、172开头,网络被电信联通等运营商做了NAT转发

    摘要:路由器WAN口IP显示为10.100.172开头,网络被电信联通等运营商做了NAT转发 ... 路由器WAN口IP显示为10.100.172开头的解决方法方法一:找电信(10000号)或者联通( ...

  5. 一个比ES处理数据更快的工具--Hubble.Net

    http://www.cnblogs.com/eaglet/tag/Hubble.Net/

  6. SSH配置(同一服务器不同用户)

    一.cxwh用户ssh免密登陆至xtjk用户 1.cxwh用户执行 ssh-keygen -t rsa -N "" -f /home/cxwh/.ssh/id_rsa cp /ho ...

  7. Django ORM常用的字段和参数

    ORM 常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. IntegerField 一个整数类 ...

  8. (6)python基础数据类型

    python的六大标准数据类型 (一)Number   数字类型(int float bool complex) (二)String 字符串类型 (三)List 列表类型 (四)Tuple 元组类型 ...

  9. 设置IDEA中各种线条颜色

    在IDEA之中, 如同TearLine, 行号, 搜索结果高亮, Caret Line, 方法分隔线颜色的设置的操作方法如下: 操作路径: 1.Ctrl+Alt+S, 打开设置:   settings ...

  10. Python单例模式(Singleton)的N种实现

    很多初学者喜欢用全局变量,因为这比函数的参数传来传去更容易让人理解.确实在很多场景下用全局变量很方便.不过如果代码规模增大,并且有多个文件的时候,全局变量就会变得比较混乱.你可能不知道在哪个文件中定义 ...