主要是对编码器相关代码做一个粗略的介绍,具体内容可以在 Util.h 里面找到

⚠️ 在使用 usb 外设如编码器、外接键盘、外接鼠标或者其他外接设备时,需要勾选


/**
* @brief 输入设备编码器
*/
class ENCODER {
public:
static void sendKey(uint32_t key);//设置编码器当前的按键(0~无按键 1~确认键 2~上一个 3~下一个)
static void sendChar(uint32_t c);//向焦点控件发送一个控制字符
static void addObject(STTWidget* w, STTPage* frm = NULL);//将控件加入编码器控制的组
static void addObjects(vector<void*> vec);//将lv对象加入编码器控制的组
static void addObjects(vector<STTWidget*> vec);//将lv对象加入编码器控制的组
static void removeObject(STTWidget* w);//将控件移出编码器控制的组
static vector<void*> clearObjects();//将所有控件移出编码器控制的组,返回清除前的列表
static void focusObject(STTWidget* w);//选中指定控件
static void focusNext();//选中下一个,同sendKey(3)
static void focusPrev();//选中上一个,同sendKey(2)
static void enter();//确认,同sendKey(1)
static void focusFreeze(bool b);//是否选定冻结(冻结时,不能选中其他控件)
static void showCursor(bool b);//是否显示光标(默认关闭)
static void wrap(bool b);//是否循环选择,默认为true(是:当前选中最后一个,再点下一个,则回到第一个)
static void editing(bool b);//手动设置是否编辑模式 0~浏览模式 1~编辑模式
static STTWidget* getFocused();//获取选中的STTWidget
static void addIme();//把输入法加入编码器控制的组
static void removeIme();//把输入法移出编码器控制的组
static void focusToImeOkButton();//在打开输入法的情况下,直接移动到OK键上
static bool enabled;//是否启用编码器标记
static void enableEncoder(bool b);//是否启用编码器
static int lastKey;
static void setCursorType(int type);//0:箭头指针 1:手指指针
static void showOutline(bool b);//是否给焦点控件设置轮廓,默认没有轮廓
static void setOutline(int color, int width);//默认红色,宽2
static int color;//轮廓颜色
static int width;//轮廓宽度
static bool isShowOutline;//是否显示轮廓
static void showWidgetOutline(STTWidget* w);//将轮廓设置应用到指定控件上(内部调用)
static void openImeOnce(bool b);
static bool isImeOnce();
static void reset();
};
下面代码以显示/不显示鼠标指针为例
// 不显示鼠标指针
ENCODER::showCursor(false);