智能车载系统#主界面设计

主界面设计

图片自己找的,界面排版自己设计的,有参考正点原子的项目。其中每个模块的功能代码后续会再陆续更新发布。底部按钮只设置了中间三个按钮的功能。

一、ui界面部分

二、代码实现部分功能

 (1)appdemo.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_H

 (2)appdemo.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\n"+str2+"\n\n"+str3);

    // 底层按键设置
    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\n"+str2+"\n\n"+str3);

}

// 倒车监控,隐藏主界面,显示监控模块界面
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();
}

三、最终界面

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值