您的位置:首页 > 编程语言 > Qt开发

树莓派入门教程——使用Qt开发界面程序

2016-08-06 05:47 676 查看
前言
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>


21.png (172.18 KB, 下载次数: 0)

下载附件

2015-4-10 16:52 上传

点击下两个按钮,看是不是控制了树莓派的GPIO.0管脚输出了高低电平?
工程及源码下载:
<ignore_js_op>

GPIO_LED.zip (24.13 KB, 下载次数: 30)

转载请注明出处,本文链接地址:http://www.embed-net.com/thread-142-1-1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐