树莓派入门教程——使用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窗口的顶部,然后还有面板和选项窗口的单独菜单.您还可以 ...
随机推荐
- Qt入门(5)——用Qt控件创建一个电话本界面
具体实现步骤: 一.首先用 Qt Designer 创建一个两张图的对话框,分别保存为listdialog.ui和editdialog.ui文件 要注意其中各个空间对应的名称修改好 二.新建一个Qt应 ...
- 【转】secureCRT使用退格键(backspace)出现^H解决办法
原文网址:http://skykiss.blog.51cto.com/blog/2892603/769771 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将 ...
- Android调用第三方应用
Intent intent=new Intent(); //包名 包名+类名(全路径) intent.setClassName("com.qn.app.store", " ...
- POJ-2240
Arbitrage Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 19063 Accepted: 8069 Descri ...
- MVC框架个人浅析
1.概述: 相信不少前端从业者,都会遇到MVC编程模式,现今多数轻量级网站用php作为后台交互,MVC编程模式用于JAVAWEB开发,应用类型以系统占多数(包括并不限于系统,电商网站,平台交互当然都能 ...
- 关于url路径的定义方式
一.概述 无论是做网页,还是WEB系统,我们都会用到链接,图片,文件的地方,这些地方都涉及到路径的问题,例如:background-image:url();这一CSS样式,而url()的定义方式有两种 ...
- 类型兼容原则(C++)
类型兼容原则是指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代. 通过公有继承,派生类得到了基类中除构造函数.析构函数之外的所有成员.这样,公有派生类实际具备了基类的所有功能,凡是基类能解 ...
- Android 中使用 html 作布局文件
在Android开发中,通常使用xml格式来描述布局文件.就目前而言,熟悉android布局及美化的人员少之又少,出现了严重的断层.大部分企业,其实还是程序员自己动手布局.这样既浪费时间和精力,也未必 ...
- android屏蔽状态栏显示
framework/base/packages/SystemUI/res/layout/status_bar_expanded.xml 要屏蔽哪个设置哪个属性为: android:visibility ...
- Android事件处理之多点触摸与手势识别
一.Muilti-touch 双指缩放的实现探索: 首先要实现OnTouchListener接口,然后重写方法: public boolean onTouch(View v, MotionEvent ...