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

目录
相关文章
|
4月前
|
算法 计算机视觉
基于qt的opencv实时图像处理框架FastCvLearn实战
本文介绍了一个基于Qt的OpenCV实时图像处理框架FastCvLearn,通过手撕代码的方式详细讲解了如何实现实时人脸马赛克等功能,并提供了结果展示和基础知识回顾。
178 7
|
8月前
|
开发框架 网络协议 数据库
Qt:构建跨平台应用的强大框架
Qt:构建跨平台应用的强大框架
|
4月前
|
文字识别 计算机视觉 开发者
基于QT的OCR和opencv融合框架FastOCRLearn实战
本文介绍了在Qt环境下结合OpenCV库构建OCR识别系统的实战方法,通过FastOCRLearn项目,读者可以学习Tesseract OCR的编译配置和在Windows平台下的实践步骤,文章提供了技术资源链接,帮助开发者理解并实现OCR技术。
201 9
基于QT的OCR和opencv融合框架FastOCRLearn实战
WK
|
2月前
|
开发框架 开发工具 C++
C++跨平台框架Qt
Qt是一个功能强大的C++跨平台应用程序开发框架,支持Windows、macOS、Linux、Android和iOS等操作系统。它提供了250多个C++类,涵盖GUI设计、数据库操作、网络编程等功能。Qt的核心特点是跨平台性、丰富的类库、信号与槽机制,以及良好的文档和社区支持。Qt Creator是其官方IDE,提供了一整套开发工具,方便创建、编译、调试和运行应用程序。Qt适用于桌面、嵌入式和移动应用开发。
WK
90 5
|
4月前
|
计算机视觉
基于QT的opencv插件框架qtCvFrameLearn实战
这篇文章详细介绍了如何基于Qt框架开发一个名为qtCvFrameLearn的OpenCV插件,包括项目配置、插件加载、Qt与OpenCV图像转换,以及通过各个插件学习OpenCV函数的使用,如仿射变换、卡通效果、腐蚀、旋转和锐化等。
73 10
|
4月前
|
C语言 C++ Windows
QT多插件通信框架CTK编译记录
本文记录了编译QT多插件通信框架CTK的过程,包括编译结果截图、部署配置、Log4Qt编译配置、参考链接和拓展资料。文中提供了详细的编译步骤和配置文件示例,以及相关的资源链接。
102 0
QT多插件通信框架CTK编译记录
|
8月前
|
开发框架 自然语言处理 Linux
Qt:构建强大跨平台应用程序的框架
Qt:构建强大跨平台应用程序的框架
|
8月前
|
开发框架 Linux C++
Qt:强大的跨平台C++应用程序开发框架
Qt:强大的跨平台C++应用程序开发框架
232 3
|
8月前
|
开发框架 编译器 C++
Qt:一个强大的跨平台C++应用程序开发框架
Qt:一个强大的跨平台C++应用程序开发框架
214 1
|
8月前
|
XML 网络协议 关系型数据库
Qt框架概述与应用实例
Qt框架概述与应用实例
130 0