
主界面设计图片自己找的界面排版自己设计的有参考正点原子的项目。其中每个模块的功能代码后续会再陆续更新发布。底部按钮只设置了中间三个按钮的功能。一、ui界面部分二、代码实现部分功能1appdemo.h代码#ifndef APPDEMO_H #define APPDEMO_H //QT_BEGIN_NAMESPACE namespace Ui { class AppDemo; } //QT_END_NAMESPACE #include QWidget #include QFile #include QDebug // 时间显示闹钟 #include QLCDNumber #include QTime #include QTimer #include QDateTime #include QFont #include QString #include QLocale #include ../musicplayer/musicplayer.h class AppDemo :public QWidget { Q_OBJECT public: AppDemo(QWidget *parent nullptr); ~AppDemo(); private: Ui::AppDemo *ui; // 时间显示闹钟 QTimer *timer; // 灯光 QFile file; // 设置LED状态 void setLedState(bool); MusicPlayer *musicplayer; private slots: void on_mid_pushButton_3_clicked(); void on_mid_pushButton_4_clicked(); void on_mid_pushButton_1_clicked(); // 定时器定时刷新时间 void timerTimeout(); void on_mid_pushButton_5_clicked(); void on_mid_pushButton_2_clicked(); void on_mid_pushButton_6_clicked(bool checked); void on_top_pushButton_4_clicked(bool checked); void on_bottom_pushButton_5_clicked(); void on_bottom_pushButton_1_clicked(); void on_bottom_pushButton_3_clicked(); void on_bottom_pushButton_2_clicked(bool checked); signals: void hide_main(); void camera(); void music(); void video(); void weather(); void map(); void demo_musicnext(); void demo_musicprevious(); void demo_musicplay(); }; #endif // APPDEMO_H2appdemo.cpp文件#include appdemo.h #include ui_appdemo.h AppDemo::AppDemo(QWidget *parent) : QWidget(parent) , ui(new Ui::AppDemo) { ui-setupUi(this); /*默认是出厂系统的 LED 心跳的触发方式,想要控制 LED * 需要改变 LED 的触发方式改为 none即无*/ system(echo none /sys/class/leds/sys-led/trigger); file.setFileName(/sys/devices/platform/leds/leds/sys-led/brightness); //light // 时间显示 timer new QTimer(this); QLocale locale QLocale::Chinese;//指定中文显示 QTime time QTime::currentTime(); QDateTime datetime QDateTime::currentDateTime(); QString str1 time.toString(hh:mm:ss); QString str2 datetime.toString(yyyy-MM-dd); QString str3 locale.toString(datetime,dddd); ui-mid_pushButton-setText(str1\n\nstr2\n\nstr3); // 底层按键设置 musicplayer new MusicPlayer(); connect(timer,SIGNAL(timeout()),this,SLOT(timerTimeout())); timer-start(100); } AppDemo::~AppDemo() { delete ui; } // 时间显示定时器定时刷新时间 void AppDemo::timerTimeout() { // QFont font(Roma,20,50); QLocale locale QLocale::Chinese;//指定中文显示 QTime time QTime::currentTime(); QDateTime datetime QDateTime::currentDateTime(); QString str1 time.toString(hh:mm:ss); QString str2 datetime.toString(yyyy-MM-dd); QString str3 locale.toString(datetime,dddd); ui-mid_pushButton-setText(str1\n\nstr2\n\nstr3); } // 倒车监控隐藏主界面显示监控模块界面 void AppDemo::on_mid_pushButton_3_clicked() { emit hide_main(); emit camera(); } // 音乐播放器 void AppDemo::on_mid_pushButton_4_clicked() { emit hide_main(); emit music(); } // 视频播放器 void AppDemo::on_mid_pushButton_1_clicked() { emit hide_main(); emit video(); } // 天气预报 void AppDemo::on_mid_pushButton_5_clicked() { emit hide_main(); emit weather(); } // 百度地图 void AppDemo::on_mid_pushButton_2_clicked() { emit hide_main(); emit map(); } // 夜灯亮灭 void AppDemo::on_mid_pushButton_6_clicked(bool checked) { // 如果文件不存在 if(!file.exists()) return; if(!file.open(QIODevice::ReadWrite)) qDebug()file.errorString(); if(checked) { ui-mid_pushButton_6-setText(夜灯灭); file.write(1); } else { ui-mid_pushButton_6-setText(夜灯亮); file.write(0); } file.close(); } // 故障灯 void AppDemo::on_top_pushButton_4_clicked(bool checked) { // 如果文件不存在 if(!file.exists()) return; if(!file.open(QIODevice::ReadWrite)) qDebug()file.errorString(); if(checked) system(echo heartbeat /sys/class/leds/sys-led/trigger); else system(echo none /sys/class/leds/sys-led/trigger); file.close(); } // 音乐播放器打开后底部按键也可控制音乐播放 void AppDemo::on_bottom_pushButton_5_clicked() { emit demo_musicnext(); } void AppDemo::on_bottom_pushButton_1_clicked() { emit demo_musicprevious(); } void AppDemo::on_bottom_pushButton_3_clicked() { emit demo_musicplay(); }三、最终界面