您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
使用Qt开发界面程序控制GPIO
 
   次浏览      
 2019-4-2
 
编辑推荐:
本文来自于简书,本文主要简单介绍了树莓派上安装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-tool

ssudo apt-get install qtcreator

由于安装Qt需要从网络下载大概200多M的文件,所以首先树莓派得接入网络,其次安装时间可能比较长,请耐心等待...

安装完毕后,点击桌面左上角的Menu若可以看到如下图所示Qt程序图标,则说明Qt安装成功。

Qt配置首次使用Qt需要对工具链进行配置,进入菜单Tools->Options->Build&Run

点击右上角的Add按钮,选择GCC

按照下图选择编译器和调试器的路径

新建Qt测试工程

新建完工程后,程序整个框架就已经搭好,我们直接编译下程序试试

编译没问题,下面我们展开左边的Forms文件目录,双击mainwindow.ui文件,然后我们在这个界面上添加两个按钮,两个按钮分别控制树莓派的一个引脚输出高低电平,如下图所示:

在右边修改好按钮控件的名称,同时修改按钮显示的文件,选择某个按钮控件,单击右键,在弹出的对话框中选择Go to slot..,然后选择Clicked()函数,Qt会自动连接一个信号和槽,同时在mainwindow.cpp文件中自动添加这个槽函数,我们在里面写按钮点击事件即可。

我们现在构造函数中完成GPIO的初始化,然后在每个按钮点击事件函数里面完成GPIO高低电平输出控制,然后再次编译程序,出现如下问题:

根据提示,我们知道是因为在链接的时候没有找到wiringPi相关函数的原因导致,所以我们需要在连接的时候引入这个库,操作方式很简单,只需要在.pro文件中加入该库即可,如下图所示:

然后再次编译,正常情况下到这里就会编译成功了,进入工程目录,我们会发现有个很长名字的文件夹,里面都是Qt在编译的时候产生的一些中间文件,当然我们编译生成的可执行文件也在里面,名字和工作名字一样,打开控制台,用cd命令进入该目录。然后用sudo ./gpio_led即可运行程序,程序运行效果如下图所示:

点击下两个按钮,看是不是控制了树莓派的GPIO.0管脚输出了高低电平?工程及源码下载:http://www.embed-net.com/forum.php?mod=attachment&aid=NDA2fDM1MTBiNmQ3fDE0NzA0MzMyMjd8MHwxNDI%3D

本文链接地址:http://www.embed-net.com/thread-142-1-1.html

 

   
次浏览       
相关文章

深度解析:清理烂代码
如何编写出拥抱变化的代码
重构-使代码更简洁优美
团队项目开发"编码规范"系列文章
相关文档

重构-改善既有代码的设计
软件重构v2
代码整洁之道
高质量编程规范
相关课程

基于HTML5客户端、Web端的应用开发
HTML 5+CSS 开发
嵌入式C高质量编程
C++高级编程