树莓派入门教程——使用Qt开发界面程序
前言
Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP。
Qt是1991年奇趣科技开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。Qt很容易扩展,并且允许真正地组件编程。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。
简单的说,用Qt可以写出很容易就移植到其他平台的程序,基本上重新编译下程序即可。
树莓派上安装Qt
使用如下命令进行安装
sudo apt-get install qt4-dev-tools
sudo apt-get install qtcreator
由于安装Qt需要从网络下载大概200多M的文件,所以首先树莓派得接入网络,其次安装时间可能比较长,请耐心等待...
安装完毕后,点击桌面左上角的Menu若可以看到如下图所示Qt程序图标,则说明Qt安装成功。
<ignore_js_op>
Qt配置
首次使用Qt需要对工具链进行配置,进入菜单Tools->Options->Build&Run
<ignore_js_op>
<ignore_js_op>
点击右上角的Add按钮,选择GCC
<ignore_js_op>
按照下图选择编译器和调试器的路径
<ignore_js_op>
<ignore_js_op>
新建Qt测试工程
<ignore_js_op>
<ignore_js_op>
<ignore_js_op>
<ignore_js_op>
<ignore_js_op>
<ignore_js_op>
<ignore_js_op>
新建完工程后,程序整个框架就已经搭好,我们直接编译下程序试试
<ignore_js_op>
编译没问题,下面我们展开左边的Forms文件目录,双击mainwindow.ui文件,然后我们在这个界面上添加两个按钮,两个按钮分别控制树莓派的一个引脚输出高低电平,如下图所示:
<ignore_js_op>
<ignore_js_op>
在右边修改好按钮控件的名称,同时修改按钮显示的文件,选择某个按钮控件,单击右键,在弹出的对话框中选择Go to slot..,然后选择Clicked()函数,Qt会自动连接一个信号和槽,同时在mainwindow.cpp文件中自动添加这个槽函数,我们在里面写按钮点击事件即可。
<ignore_js_op>
<ignore_js_op>
我们现在构造函数中完成GPIO的初始化,然后在每个按钮点击事件函数里面完成GPIO高低电平输出控制,然后再次编译程序,出现如下问题:
<ignore_js_op>
根据提示,我们知道是因为在链接的时候没有找到wiringPi相关函数的原因导致,所以我们需要在连接的时候引入这个库,操作方式很简单,只需要在.pro文件中加入该库即可,如下图所示:
<ignore_js_op>
然后再次编译,正常情况下到这里就会编译成功了,进入工程目录,我们会发现有个很长名字的文件夹,里面都是Qt在编译的时候产生的一些中间文件,当然我们编译生成的可执行文件也在里面,名字和工作名字一样,打开控制台,用cd命令进入该目录。然后用
sudo ./gpio_led
即可运行程序,程序运行效果如下图所示:
<ignore_js_op>
点击下两个按钮,看是不是控制了树莓派的GPIO.0管脚输出了高低电平?
工程及源码下载:
<ignore_js_op>
GPIO_LED.zip (24.13 KB, 下载次数: 30)
转载请注明出处,本文链接地址:http://www.embed-net.com/thread-142-1-1.html
树莓派入门教程——使用Qt开发界面程序的更多相关文章
- qt学习教程1.qt开发环境搭建
qt学习教程1.qt开发环境搭建 首先下载qt 下载地址:http://download.qt.io/archive/qt/ 此教程使用的版本为5.1.1 下载好后,打开安装包,然后点下一步 选择一个 ...
- Qt开发的程序在没有安装Qt环境的机器上可能出现的一些问题
Qt开发的程序在没有安装Qt环境的机器上可能出现的一些问题,如:除png外的其它类型的图片,如:jpg.ico.bmp等,还有中文乱码等问题,出现这些问题的本质是Qt对这类文件格式或编码格式的支持方式 ...
- .NetCore微服务Surging新手傻瓜式 入门教程 学习日志---先让程序跑起来(一)
原文:.NetCore微服务Surging新手傻瓜式 入门教程 学习日志---先让程序跑起来(一) 写下此文章只为了记录Surging微服务学习过程,并且分享给广大想学习surging的基友,方便广大 ...
- [OpenCV Qt教程] 在Qt图形界面中显示OpenCV图像的OpenGL Widget(第二部分)
本文译自:http://www.robot-home.it/blog/en/software/tutorial-opencv-qt-opengl-widget-per-visualizzare-imm ...
- [OpenCV Qt教程] 在Qt图形界面中显示OpenCV图像的OpenGL Widget (第一部分)
本文译自:http://www.robot-home.it/blog/en/software/tutorial-opencv-qt-opengl-widget-per-visualizzare-imm ...
- Qt开发MySQL程序发布后出现"Driver not loaded"的问题
1.安装qt的显示界面程序 2.安装mysql-server 3.给系统增加mysql-server的环境C:\Program Files\MySQL\MySQL Server 5.7\bin 4.将 ...
- 微信小程序开发入门教程(三)---小程序云开发支付功能
支付(shoukuan)功能真的很重要!由于我还没有商户号,以下代码未实际验证 1.服务端 进入云开发,新建云函数pay(应该也可以在开发者工具编写后上传) 编写后端代码index.js这里用到第三方 ...
- Unix/Linux环境C编程入门教程(18) kali-linuxCCPP开发环境搭建
1. Kali linux是BT5的晋级版本,用于信息安全.基于Debian7内核.新建虚拟机. 2. 选择默认虚拟机 3. 选择稍后安装操作系统 4.选择Linux Debian7 64位,因为Ka ...
- Maya零基础新手入门教程第一部分:界面
第1步:菜单 如果您曾经使用过一个软件,那么您将习惯菜单!在Maya中,菜单包含用于在场景中工作的工具和操作.与大多数程序一样,主菜单位于Maya窗口的顶部,然后还有面板和选项窗口的单独菜单.您还可以 ...
随机推荐
- 【转】Linux中断处理学习笔记
原文网址:http://www.cnblogs.com/GT_Andy/archive/2011/06/21/2086100.html 1.Linux中断的注册与释放: 在<linux/inte ...
- 易pc,1G容量以上的u盘,另外还要一台装了windows系统的电脑。
一.硬件:易pc,1G容量以上的u盘,另外还要一台装了windows系统的电脑. 二.软件: 1.windows xp的安装包.考虑到易PC的硬盘容量,还是用精简版的吧,比如“Deepin XP Li ...
- [北京周六见]10 家创业公司联合招 Partner-均融资 1 到 3 轮-薪酬股权可观-本周六举行欢迎来坐坐吃喝谈天 - V2EX
[北京周六见]10 家创业公司联合招 Partner-均融资 1 到 3 轮-薪酬股权可观-本周六举行欢迎来坐坐吃喝谈天 - V2EX [北京周六见]10 家创业公司联合招 Partner-均融资 1 ...
- Java Hibernate 主键生成10大策略
本文将介绍Hibernate中主键生成的几种策略方案,有需要的朋友可以参考一下. 1.自动增长identity 适用于MySQL.DB2.MS SQL Server,采用数据库生成的主键,用于为lon ...
- CoreText学习(一)Base Objects of Core Text
最近要做一个读入Word,PDF格式等的文件并且加以编辑的程序,本来以为使用Text Kit结合Text View来打开doc文件是完全没问题的,结果用了各种方法打开要么是数据是nil,要么打开的文字 ...
- iframe切换内容页仍然能自适应大小代码(含js)
function setIframeHeight(iframe) { if (iframe) { var iframeWin = iframe.contentWindow || iframe.cont ...
- JDBC编程之事务处理
JDBC中的事务处理指的是事务的一致性等问题,例如插入一条数据(id,name,password)到表中,另一条数据(address,id)到另一张表中,并且两条数据是相关联的,那么假设第一条数据插入 ...
- MYSQL视图的学习笔记
MYSQL视图的学习笔记,学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具 1. 视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚 ...
- springmvc的讲解
概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能.现在你无须让 Controller 继承任何接口,无需在 ...
- VS2013服务器资源管理器添加Mysql数据源
如何为VS2013服务器资源管理器添加Mysql数据源,如图: 接下来就看下如何添加 1.需要下载安装Mysql for Visual Studio 1.1.1 下载位置:http://downloa ...