QT学习记录-模拟键盘

这篇博客记录了使用QT进行模拟键盘操作的学习过程,重点在于如何实现开启特定序号后标签显示红色,以及选中后的颜色变化。代码已给出,但表示逻辑仍有优化空间。
摘要由CSDN通过智能技术生成

默认是黄色
初始界面
开启对应的序号,对应的label显示红色,选0为全部开启
开启
开启的l即红色的label才能选中,选中后变为白色
选中
代码如下,逻辑待优化:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QMap>
namespace Ui {
   
class Widget;
}

enum ButtonType
{
   
    EN_NONE,
    EN_NUMBER0 = 0,
    EN_NUMBER1,
    EN_NUMBER2,
    EN_NUMBER3,
    EN_NUMBER4,
    EN_OPEN,
    EN_CLOSE,
    EN_STATE,
    EN_SELECT,
    EN_ENTER
};

class Widget : public QWidget
{
   
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
    void connectInit();
    void onHandleButton(ButtonType s, ButtonType r);
    void onButtonPressed();
    void setMissilePower();
    void setMissileSelect();
signals:
    void sendButton(ButtonType s, ButtonType r);
private:
    Ui::Widget *ui;
    ButtonType dest;
    QMap<int, int> m_tmpMap;        //临时容器
    QMap<int, int> m_missileMap;    //确认的容器 0:初始 1:开 2:关
    QMap<int, int> m_selectMap;     //选择容器 0:初始 1:选中 2:未选中
    bool m_state;
};

#endif // WIDGET_H

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
   
    ui->setupUi(this);
    ui->labelState->hide();
    dest = EN_NONE;
    m_missileMap[1] = 0;
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值