Qt5 mouseless 测试

本文介绍了在嵌入式设备上使用Qt5进行无鼠标交互的设计,通过事件过滤器集中处理部件事件,实现物理按键控制焦点切换。示例代码展示了使用QGridLayout布局,通过上、下、左、右按键导航,以及Enter键触发点击事件。
摘要由CSDN通过智能技术生成

最近需要在一个嵌入式设备上使用物理按键跟Qt界面交互操作,

在这种没有鼠标的情况下,写Qt程序就要小心了,有些东东能用,

有些东东不能用,一定提前得有所考虑。

简单的交互最好只使用按钮,复杂点的,因为涉及到焦点的切换。

复杂点的,如果屏幕还要弹出输入法来,就更加麻烦一些了。

上图吧。

使用事件过滤器,将窗体所有部件的事件都集中在父窗体的事件处理函数中来处理,来决定下一个焦点切换到谁身上。

为了方便在上、下、左、右四个方向进行切换,所以使用了QGridLayout.

#ifndef ZPAGE1_H
#define ZPAGE1_H

#include <QWidget>
#include <QKeyEvent>
#include <QDebug>
#include <QGridLayout>
#include <QToolButton>
class ZPage1 : public QWidget
{
    Q_OBJECT

public:
    ZPage1(QWidget *parent = 0);
    ~ZPage1();

protected:
    bool eventFilter(QObject *obj, QEvent *event);
private slots:
    void ZSlotBtnClicked();
private:
    QGridLayout *m_gridLayout;
    QToolButton *m_btnArray[20];
};

#endif // ZPAGE1_H

#include "zpage1.h"

ZPage1::ZPage1(QWidget *parent)
    : QWidget(parent)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值