Qt [GC9-19]:液晶仪表整体框架调整

简介: Qt [GC9-19]:液晶仪表整体框架调整

image.pngimage.png

主窗口依旧采用QWidget,在此基础上加一层背景层,如果背景简单,那就是使用QLabel,如果构造复杂则采用QWisget,在上面就是我比较喜欢的方式,QTabWidget,每个模式占用一个Tab,别说三个了,三十个也是可以的,哈哈哈。


这中实现方式也不是啥问题都没有,目前能想到的呢就是,TabWidget的画面切换动画,这个不知有没有,如果没有,可能就需要手动实现了。遇到了再说……


升级后的框架,就是原本的界面变成了一个子控件放在了TabWidget的Tab上面。把原来为主窗口绘制内容迁移至子控件中,并开放先关接口设计。


这里又会衍生出一个问题来,那就是我们的参数问题。液晶仪表上面的参数会有很多,但是怎么把这些参数通过控制台给他们呢,如果一个一个的给,会有多个接口,并且调用麻烦,如果把所有参数打包成一个结构体,那么当我修改其中一个参数的时候,其他参数就要发送给界面,这样会不会增加计算机的负担了。


目前我才用的但是单个参数。


附上调整后的代码,由于没有新的技术问题,这里只是简单附上头文件。

子控件
#ifndef MD_COMFORT_H
#define MD_COMFORT_H
#include <QWidget>
#include <QPaintEvent>
#include <QPainter>
namespace Ui {
class MD_Comfort;
}
class MD_Comfort : public QWidget
{
    Q_OBJECT
public:
    explicit MD_Comfort(QWidget *parent = 0);
    ~MD_Comfort();
    void set_MDC_RotateSpeed(int rotateSpeed);
    void set_MDC_CarSpeed(int carSpeed);
protected:
    /*
     * 事件过滤器
     */
    bool eventFilter(QObject *watched, QEvent *event);
    /*
     * 绘制转速表
     */
    void draw_RotatetSpeed(int rotateSpeed);
    /*
     * 绘制转速
     */
    void draw_CarSpeed(int carSpeed);
private:
    Ui::MD_Comfort *ui;
    int m_RotateSpeed = 0;      //转速
    int m_CarSpeed = 0;         //车速
};
#endif // MD_COMFORT_H
主液晶显示面板
#ifndef METERDISPLAY_H
#define METERDISPLAY_H
#include <QWidget>
#include <QMouseEvent>
#include <QKeyEvent>
#include "md_comfort.h"
namespace Ui {
class MeterDisplay;
}
class MeterDisplay : public QWidget
{
    Q_OBJECT
public:
    explicit MeterDisplay(QWidget *parent = 0);
    ~MeterDisplay();
    void set_MD_RotateSpeed(int rotateSpeed);
    void set_MD_CarSpeed(int carSpeed);
private:
    /*
     * 鼠标按下事件
     */
    void mousePressEvent(QMouseEvent *event);
    /*
     * 鼠标移动事件
     */
    void mouseMoveEvent(QMouseEvent *event);
    /*
     * 鼠标松开事件
     */
    void mouseReleaseEvent(QMouseEvent *event);
    /*
     * 键盘事件
     */
    void keyReleaseEvent(QKeyEvent *event);
private:
    Ui::MeterDisplay *ui;
    MD_Comfort *md_Comfort = NULL; //舒适界面UI
};
#endif // METERDISPLAY_H

image.png

目录
相关文章
|
16天前
|
开发框架 网络协议 数据库
Qt:构建跨平台应用的强大框架
Qt:构建跨平台应用的强大框架
|
2月前
|
存储
QT图形视图框架绘制曲线图和Smith图
QT图形视图框架绘制曲线图和Smith图
23 0
|
16天前
|
开发框架 自然语言处理 Linux
Qt:构建强大跨平台应用程序的框架
Qt:构建强大跨平台应用程序的框架
|
12天前
|
开发框架 编译器 C++
Qt:一个强大的跨平台C++应用程序开发框架
Qt:一个强大的跨平台C++应用程序开发框架
30 1
|
12天前
|
开发框架 Linux C++
Qt:强大的跨平台C++应用程序开发框架
Qt:强大的跨平台C++应用程序开发框架
44 3
|
16天前
|
XML 网络协议 关系型数据库
Qt框架概述与应用实例
Qt框架概述与应用实例
16 0
|
2月前
|
算法 API C++
Qt框架与STL库之间的巅峰对决:差异、优缺点及适用场景
Qt框架与STL库之间的巅峰对决:差异、优缺点及适用场景
160 0
|
4月前
【音视频 ffmpeg 】直播推流QT框架搭建
【音视频 ffmpeg 】直播推流QT框架搭建
|
5月前
|
存储 数据可视化 测试技术
[Qt5] QGraphics图形视图框架概述(Item、Scene和View)
[Qt5] QGraphics图形视图框架概述(Item、Scene和View)
186 0
|
5月前
[Qt5&布局] 控件自动填满所在布局框架
[Qt5&布局] 控件自动填满所在布局框架
40 0
[Qt5&布局] 控件自动填满所在布局框架

推荐镜像

更多