一、安装QT5和QT Creator
这里只安装QT基础的部分,还有其他模块。
// 安装QT的基本库
sudo apt-get install qt5-default
// 安装QT的IDE
sudo apt-get install qtcreator
//新的树莓派如4B, 需更新wiringpi(控制IO库)
cd /tmp
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
验证wiringpi 安装是否成功
执行gpio readall
可以看到很直观的看到IO的IO模式,是输出还是输入。
另外编程时需要使用的 IO端口号也列出来的,这里使用wiringpi 控制的话 关注wpi那列的端口,和python使用RPi库控制IO编号不一样。
二、编写控制代码
1、新建工程
2、选择QWidget
3、pro工程添加LIBS += -lwiringPi
4、widget.ui添加两个按钮 改名为b1,b2
右键按钮 转到槽
这里都选clicked()
这样就可以在两个clicked 加入点亮LED和熄灭LED的代码,就可以实现按钮控制了
5、widget.cpp 写入完整的IO控制代码
这里我们使用pin12,也就是对应wpi 1的口
widget.cpp 完整代码:
#include "widget.h"
#include "ui_widget.h"
#include "wiringPi.h"//添加头文件
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
wiringPiSetup();//初始化
pinMode(1,OUTPUT); //PIN12 use "gpio readall" get status
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_b1_clicked()
{
digitalWrite(1,HIGH);
}
void Widget::on_b2_clicked()
{
digitalWrite(1,LOW);
}
widget.h 完整代码 (这里添加槽函数是刚才转到槽自动处理的,不需要手动修改)
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_b1_clicked();
void on_b2_clicked();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
三、运行效果
点击运行
编译没有报错就是OK
可以看到已经生成了可执行文件
界面如图:
点击ON和OFF,灯实现了亮灭,实现了功能,实物这里就不展示了, 偷懒,嘻嘻。
总结:这里只是简单展示了一下树莓派Qt编程,可能看的云里雾里的,学习Qt还是要系统性的学,PC端也可以学,树莓派下,Ctrl +Shift +C和Ctrl +Shift +V 才能复制黏贴文本,着实不习惯。另外提一句 怎么这里wiringPI的代码一股Arduino的味道 一v一