树莓派也能跑QT

QT简介

Qt是跨平台的开发库,主要是开发图形用户界面(Graphical User Interface,GUI)应用程序,当然也可以开发非图形的命令行(Command User Interface,CUI)应用程序。 Qt支持众多的操作系统平台,如通用操作系统 Windows、Linux、Unix,智能手机系统 Android、iOS、WinPhone, 嵌入式系统 QNX、VxWorks 等等,应用广泛。当然 Qt 库本身包含的功能模块也日益丰富, 一直有新模块和第三方模块扩充。除了与操作系统底层结合特别紧密的,如驱动开发, 需要利用操作系统本身的函数库实现之外,其他大部分的应用程序开发都可以用 Qt 实现的。 Qt 是纯 C++ 开发的,所以学好 C++ 比较有必要。Qt 还存在 Python、Ruby、Perl 等脚本语言的绑定, 也就是说可以使用脚本语言开发基于 Qt 的程序。

在树莓派上QT安装

打开命令终端运行如下命令

1)sudo apt-get install qt4-dev-tools
2)sudo apt-get install qtcreator

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

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

配置QT

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

鼠标选择Compilers,点击右上角的Add,选择GCC,进行如下设置

编译器路径(Compiler path)就是Pi上gcc的路径,即/usr/bin/gcc,然后点击ok保存

设置好Compilers后鼠标选中Debuggers,设置调试器路径,同样的点击右上角的Add按钮,进行如下设置

Path处按照上图填写,然后点击Ok

设置完调试器后,鼠标选中Kits,对套件进行设置。选中Manual下面的Desktop(default)进行如下设置

设置完成后点击 Ok保存。至此QT已经配置完成。

牛刀小试——QT点亮LED

将LED灯接在GPIO 0上,如图

1)新建一个QT工程

点击File->New File or Project

点击 choose

Name处填写你的工程名称,然后点击Next

点击Next

点击Next

点击Finish,这样工程就建立好了。

2)拖控件

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

在右边的text修改好按钮控件的名称,这里分别修改为ON、OFF,同时在QObject下的objectName处修改按钮对象名称,这里分别修改为ON、OFF。选择某个按钮控件,单击右键,在弹出的对话框中选择Go to slot..

当两个按键都执行了"go to slot"操作后,QT会在mainwindow.cpp里自动帮我们生成了两个函数,一个是void MainWindow::on_ON_clicked()和void MainWindow::on_OFF_clicked(),如上图中15—25行红线处所示。这就是ON按键和OFF按键的槽函数,当按键被按下时候,产生一个信号就会执行对应槽函数中的代码,在槽函数中编写GPIO输出高低电平的代码就可以实现LED灯亮灭了。

QT里面信号与槽的概念可以理解为单片机里中断的概念,当产生一个中断信号,就会执行中断服务服务函;也 可以理解为操作系统里面事件的概念,当产生一个事件,就执行事件函数。

现在分别往两个按键槽函数和构造函数中填写如图所示代码

代码一开始先添加了wiringPi这个库;构造函数里面完成了GPIO的初始化以及IO口的输入输出模式;槽函数里面分别是让GPIO 0口输出低电平和高电平。学习过arduino编程的读者可能会发现这些函数的名字和用法怎么跟arduino一模一样呢?是的wiriingPi这个库里面的函数大多数和arduino库函数是一样的,所以学习过arduino编程过在学习raspberry pi编程会容易一些。

3)编译程序

点击Build->Build Project"GPIO_LED"编译工程,发现报错,如图

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

qt_install17

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

点击下两个按钮,看是不是控制了树莓派的GPIO.0管脚输出了高低电平

Posted in 测试

Leave a Reply

WordPress spam blocked by CleanTalk.