HMI-57-多媒体收音机 1

Posted DreamLife.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HMI-57-多媒体收音机 1相关的知识,希望对你有一定的参考价值。

HMI-57-【多媒体】收音机 1

​ 前面几篇已经音乐播放器简单搞了一下,可以放音乐了。今天艺术家发来了收音机的界面,今天先搞搞。

当前进度

​ 今天把上下菜单按钮实现了,和音乐一模一样,下面就直接上代码,没有啥要说的,想知道详细的可以看前面几篇音乐的解析,或者直接看的代码吧。


文章目录

关键字: HMIMultifunctionQtQMediaPlayerMusic

头文件

#ifndef MFD_RADIO_H
#define MFD_RADIO_H

#include <QWidget>

namespace Ui 
class MFD_Radio;


class MFD_Radio : public QWidget

    Q_OBJECT

public:
    explicit MFD_Radio(QWidget *parent = nullptr);
    ~MFD_Radio();
private slots:
    /**
     * @brief on_pushButton_menu_clicked
     * 主菜单按钮槽函数
     */
    void on_pushButton_menu_clicked();
    /**
     * @brief on_pushButton_navigation_clicked
     * 导航按钮槽函数
     */
    void on_pushButton_navigation_clicked();
    /**
     * @brief on_pushButton_multimedia_clicked
     * 音乐按钮槽函数
     */
    void on_pushButton_multimedia_clicked();
    /**
     * @brief on_pushButton_radio_clicked
     * 收音机按钮槽函数
     */
    void on_pushButton_radio_clicked();
    /**
     * @brief on_pushButton_phone_clicked
     * 收音机按钮槽函数
     */
    void on_pushButton_phone_clicked();
    /**
     * @brief on_pushButton_return_clicked
     * 返回按钮槽函数
     */
    void on_pushButton_return_clicked();
    /**
     * @brief on_pushButton_menubtn_clicked
     * 子菜单按钮槽函数
     */
    void on_pushButton_menubtn_clicked();
    /**
     * @brief on_pushButton_am_clicked
     * AM按钮槽函数
     */
    void on_pushButton_am_clicked();
    /**
     * @brief on_pushButton_fm_clicked
     * FM按钮槽函数
     */
    void on_pushButton_fm_clicked();

signals:
    /**
     * @brief signal_returnToMenu
     * 返回主菜单信号
     */
    void signal_returnToMenu();
    /**
     * @brief signal_return
     * 返回函数
     */
    void signal_return();
    /**
     * @brief signal_ToNavigation
     * 转到导航信号
     */
    void signal_ToNavigation();
    /**
     * @brief signal_ToMusic
     * 转到音乐
     */
    void signal_ToMusic();
    /**
     * @brief signal_ToPhone
     * 转到电话信号
     */
    void signal_ToPhone();
private:
    /**
     * @brief paintEvent
     * @param event
     * 重绘事件,用于绘制背景
     */
    void paintEvent(QPaintEvent* event);
    /**
     * @brief initBottomPushbutton
     * 初始按钮
     */
    void initBottomPushbutton();
private:
    Ui::MFD_Radio *ui;
;

#endif // MFD_RADIO_H

源文件

#include "mfd_radio.h"
#include "ui_mfd_radio.h"
#include <QPainter>
#include <QTabBar>
MFD_Radio::MFD_Radio(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MFD_Radio)

    ui->setupUi(this);
    ui->label_mainback->hide();
    ui->pushButton_menubtn->setStyleSheet("QPushButtonborder-image: url(:/Multimedia/Resources/MultifunctionDisplay/Multimedia/menubtn.png);"
                                          "QPushButton:pressedborder-image: url(:/Multimedia/Resources/MultifunctionDisplay/Multimedia/menubtn_1.png);");
    initBottomPushbutton();

    ui->tabWidget_menu->tabBar()->hide();
    ui->tabWidget_menu->setStyleSheet("QTabWidget::paneborder-top: 2px solid #00000000;");
    ui->tabWidget_menu->hide();

    ui->pushButton_am->setStyleSheet("QPushButtonborder-image: url(:/Radio/Resources/MultifunctionDisplay/Radio/am.png);"
                                     "QPushButton:pressedborder-image: url(:/Radio/Resources/MultifunctionDisplay/Radio/am_1.png);");

    ui->pushButton_fm->setStyleSheet("QPushButtonborder-image: url(:/Radio/Resources/MultifunctionDisplay/Radio/fm_2.png);"
                                     "QPushButton:pressedborder-image: url(:/Radio/Resources/MultifunctionDisplay/Radio/fm_1.png);");



MFD_Radio::~MFD_Radio()

    delete ui;


void MFD_Radio::paintEvent(QPaintEvent *event)

    Q_UNUSED(event)
    QPainter painter;
    painter.begin(this);
    painter.drawPixmap(0,0,width(),height(), QPixmap(":/Radio/Resources/MultifunctionDisplay/Radio/mainback.png"));               // 绘制背景
    painter.end();


void MFD_Radio::initBottomPushbutton()

    ui->pushButton_menu->setStyleSheet("QPushButtonborder-image: url(:/Multimedia/Resources/MultifunctionDisplay/Multimedia/menu.png);"
                                       "QPushButton:pressedborder-image: url(:/Multimedia/Resources/MultifunctionDisplay/Multimedia/menu_1.png);");

    ui->pushButton_return->setStyleSheet("QPushButtonborder-image: url(:/Multimedia/Resources/MultifunctionDisplay/Multimedia/return.png);"
                                         "QPushButton:pressedborder-image: url(:/Multimedia/Resources/MultifunctionDisplay/Multimedia/return_1.png);");

    ui->pushButton_multimedia->setStyleSheet("QPushButtonborder-image: url(:/Multimedia/Resources/MultifunctionDisplay/Multimedia/multimedia_2.png);"
                                             "QPushButton:pressedborder-image: url(:/Multimedia/Resources/MultifunctionDisplay/Multimedia/multimedia_1.png);");

    ui->pushButton_navigation->setStyleSheet("QPushButtonborder-image: url(:/Multimedia/Resources/MultifunctionDisplay/Multimedia/navigation_2.png);"
                                             "QPushButton:pressedborder-image: url(:/Multimedia/Resources/MultifunctionDisplay/Multimedia/navigation_1.png);");

    ui->pushButton_radio->setStyleSheet("QPushButtonborder-image: url(:/Multimedia/Resources/MultifunctionDisplay/Multimedia/radio.png);"
                                        "QPushButton:pressedborder-image: url(:/Multimedia/Resources/MultifunctionDisplay/Multimedia/radio_1.png);");

    ui->pushButton_phone->setStyleSheet("QPushButtonborder-image: url(:/Multimedia/Resources/MultifunctionDisplay/Multimedia/phone_2.png);"
                                        "QPushButton:pressedborder-image: url(:/Multimedia/Resources/MultifunctionDisplay/Multimedia/phone_1.png);");


void MFD_Radio::on_pushButton_menu_clicked()


    emit signal_returnToMenu();




void MFD_Radio::on_pushButton_navigation_clicked()

    emit signal_ToNavigation();



void MFD_Radio::on_pushButton_multimedia_clicked()

    emit signal_ToMusic();



void MFD_Radio::on_pushButton_radio_clicked()





void MFD_Radio::on_pushButton_phone_clicked()

    emit signal_ToPhone();



void MFD_Radio::on_pushButton_return_clicked()

    emit signal_return();



void MFD_Radio::on_pushButton_menubtn_clicked()

    if(ui->tabWidget_menu->isHidden())
    
        ui->tabWidget_menu->show();
        ui->tabWidget_menu->setCurrentIndex(0);
    
    else
        ui->tabWidget_menu->hide();



void MFD_Radio::on_pushButton_am_clicked()

    ui->pushButton_am->setStyleSheet("QPushButtonborder-image: url(:/Radio/Resources/MultifunctionDisplay/Radio/am.png);"
                                     "QPushButton:pressedborder-image: url(:/Radio/Resources/MultifunctionDisplay/Radio/am_1.png);");

    ui->pushButton_fm->setStyleSheet("QPushButtonborder-image: url(:/Radio/Resources/MultifunctionDisplay/Radio/fm_2.png);"
                                     "QPushButton:pressedborder-image: url(:/Radio/Resources/MultifunctionDisplay/Radio/fm_1.png);");



void MFD_Radio::on_pushButton_fm_clicked()

    ui->pushButton_am->setStyleSheet("QPushButtonborder-image: url(:/Radio/Resources/MultifunctionDisplay/Radio/am_2.png);"
                                     "QPushButton:pressedborder-image: url(:/Radio/Resources/MultifunctionDisplay/Radio/am_1.png);");

    ui->pushButton_fm->setStyleSheet("QPushButtonborder-image: url(:/Radio/Resources/MultifunctionDisplay/Radio/fm.png);"
                                     "QPushButton:pressedborder-image: url(:/Radio/Resources/MultifunctionDisplay/Radio/fm_1.png);");



今天就到这里了。

第三阶段成果展示

​ 目前已完成液晶仪表三种模式的初步显示,小模块后期根据精力更新了,主要还得找美术来搞资源,自己能力不够。暂未跟新计划。展示如下:

基于Qt的汽车仪表模拟 3.0

B站链接:https://www.bilibili.com/video/BV1WS4y137y1/

第二阶段成果展示

​ 目前以完成HUD界面及接口开发,液晶仪表舒适模式和运动模式的开发。展示如下:

基于Qt的汽车仪表模拟 2.0

B站链接:https://www.bilibili.com/video/BV1aq4y1t7H7/

第一阶段成果展示

​ 目前以完成HUD界面及接口开发,液晶仪表舒适模式开发。展示如下:

基于Qt的汽车仪表模拟 1.0)

B站链接:https://www.bilibili.com/video/BV1qJ411X7Gs/


说明:

本项目中所使借鉴原型来自:[吉利] 博瑞GE | 仪表HMI设计吉利汽车HMI项目

多媒体部分是来自吉利博瑞2017旗舰版界面所有权和解释权都归吉利汽车所有。

设计图的所有权和解释权都归吉利汽车所有。

本项目所有资源文件均由**打不死的小海**复刻制作。

本项目代码暂时不会开源,有需要的源码的可与我联系,左上角二维码加微信。

本项目仅限学习交流、禁止商业使用。


以上是关于HMI-57-多媒体收音机 1的主要内容,如果未能解决你的问题,请参考以下文章

HMI-59-多媒体收音机 2

HMI-59-多媒体收音机 2

信创操作系统--麒麟Kylin桌面版 (项目八 多媒体软件:图像查看图像处理音频播放录音机)

媒体录音机声音质量差

Winamp - HLS 收音机 (m3u8)

8.2.1 QMediaPlayer类介绍与基本使用