Win10 + CLion + 树莓派 + QT 远程开发调用Python
原则:能在一个机器上开发的就不在两台机器上!!
首先需要配置远程QT开发环境
配置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相关参数。
之后就可以在*.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相对应的。参考:
Win10 + CLion + 树莓派 + QT 远程开发调用Python的更多相关文章
- Win10+ Clion + 树莓派 + QT进行远程qt程序开发
环境配置 环境配置 Windows上:QT5 + CLion 硬件上:一只可联网.可ssh连接且装有QT5的树莓派 暂时还没想好... 树莓派安装qt sudo apt-get update sudo ...
- 在QT C++中调用 Python并将软件打包发布(裸机可运行)
为了提高工作效率,需要一个可以自动生成多份相关联的word文档免去繁琐复制粘贴工作的软件.最后选定使用QT C++做界面和主要逻辑程序设计,对word的操作使用python写好对应的函数,然后在QT中 ...
- Clion + 树莓派/Ubuntu 远程调试
Clion进行远程调试 在大三下半学期学习Linux高级编程时,老师布置的作业要在linux机器上进行,当时完成的十分艰苦,调试难受的一匹,当时就萌生了这个想法,因为Jetbrains官方文档的晦涩( ...
- 树莓派.Qt.打包开发好的程序并运行的方法
Qt开发的软件, 想要部署在树莓派上运行, 需要进行打包和发布 主要步骤如下: 1. 找1个树莓派用于开发与打包, 所以需要在它上面安装Qt开发环境 树莓派上安装Qt的方法, 可以看这里>> ...
- Clion远程开发
2018.3 开始Clion可以支持远程开发了 官网教程如下: https://www.jetbrains.com/help/clion/remote-projects-support.html ...
- QT树莓派交叉编译环开发环境搭建(附多个exe工具下载链接)
前两天入手了一块2.8’的tft液晶显示屏,于是和树莓派连了一发,成功将命令行显示在了这块小的可怜的屏幕上之后,觉得这屏幕就显示个黑白内容太浪费了,于是考虑开发一个”脸”(图形用户界面,GUI).首先 ...
- Pycharm中进行Python远程开发
http://blog.csdn.net/pipisorry/article/details/52269952 PyCharm提供两种远程调试(Remote Debugging)的方式: 配置远 ...
- QT中 使用c++调用python
最近在做一个项目,开发环境用的是QT c++.项目中使用amazon云服务,调研发现有一个Amazon云的python接口.就有了标题中的问题,需要用C++来调用python脚本. 下面是一个c++调 ...
- Linux+CLion+树莓派远程编译时,Cmake编译出现undefined reference to `vtable for MainWindow'的解决办法
在win+CLion上进行远程qt开发时碰到以下错误: 错误提示: undefined reference to `vtable for MainWindow' 原因:源文件的目录结构有问题?? 解决 ...
随机推荐
- javascript 的惯性运动
移动端的惯性运动,最早来自 ios 的专利.用于手指滑动,离开屏幕之后,屏幕内容继续滚动.更有动态感. 这里,以 pc 端,鼠标横向(沿x轴) 拖拽的,惯性计算.移动端同理 具体代码如下: <! ...
- Javascript中的继承与复用
实现代码复用的方法包括:工厂模式.构造函数模式.原型模式(<高三>6.2章 P144),它们各自的特点归结如下:1.工厂模式虽然使创建对象一定程度上实现了代码复用,但却没有解决对象识别问题 ...
- 连接Linux远程桌面的几个方法
有下面五种方法: 一.通过xshell或putty直接调用程序窗口(通过ssh命令行连接). 二.通过xbrower连接Linux完整的桌面. 通过xshell直接调用程序窗口. rhel5的gdm的 ...
- SQL学习——BETWEEN运算符
原文链接 BETWEEN的作用 BETWEEN 操作符用于选取介于两个值之间的数据范围内的值. BETWEEN的边界 BETWEEN运算符选择给定范围内的值.值可以是数字,文本或日期. BETWEEN ...
- jEasyUI 菜单与按钮
jQuery EasyUI 菜单与按钮 – 创建简单的菜单 <div id="mm" class="easyui-menu" style="wi ...
- Mysql(四):数据操作
一 介绍 MySQL数据操作: DML ======================================================== 在MySQL管理软件中,可以通过SQL语句中的 ...
- 车钥匙开关上找不到+24V的问题 - 岱峰 - DGY90
背景: 本人外行,用万用表,在车身电路上查找电瓶正极. 机种:吊管机:机型:岱峰-DGY90 过程: 经过测试,车钥匙开关各连接点电压: 标记B - OFF时电压0,ON时电压+25V 标记BR - ...
- 牛客练习赛42 C 出题的诀窍 (贡献,卡常)
牛客练习赛42 C 出题的诀窍 链接:https://ac.nowcoder.com/acm/contest/393/C来源:牛客网 题目描述 给定m个长为n的序列a1,a2,-,ama_1 , a_ ...
- IPV4和IPV6的划分
IP(Internet Protocol,网络互联协议)地址就是连接互联网的主机被分配或指派的一段数字标识,是传输报文组装时最重要的组成部分,用来在互联网中数据传输时标识源和目标主机. IPv4 IP ...
- SpiderMan成长记(爬虫之路)
第一章 爬虫基础 1.1 爬虫基本原理 1.2 请求库 -- urllib库的使用 1.3 请求库 -- requests库的使用 1.4 数据解析 -- 正则基础 1.5 数据解析 -- lxml与 ...