首页
学习
活动
专区
圈层
工具
发布

轻量级Qt键盘-原理篇

以类图,顺序图为切入点分析键盘使用原理。

1.类图分析

1.1 AbstractKeyboard与Keyboard 类图中AbstractKeyboard继承于QWidget,而Keyboard则继承于AbstractKeyboard。

  或许有人会问,为什么Keyboard直接继承于QWidget这样更简单直接? 这里看情况,在单个键盘的情况下这种做法是简单直接。如何是存在多个键盘(数字键盘,字母键盘等),我们需要切换起来就会变得很麻烦

AbstractKeyboard提供namesetName接口是为了标识多个键盘的情况。

类图

1.2 KeyboardKeyButton

  • Keyboard存在多个KeyButton;
  • Keyboard类通过构造多个按键并使用(h1(),h2(),h3(),h4())进行布局。
  • 当用户按下切换大小写按钮触发事先构造绑定在Keyboard类的switchCapsLock槽函数。

1.3 KeyButtonKeyMode

  • 由于KeyButtonKeyMode为了表达按键的多种显示,比如小写q,当按下大写切换就会变为大写Q,当按下字符切换就会切换到数字1
  • KeyMode的Mode包含按键的key值,按键的value,按键在界面的显示值,还有按键的类型。

2.用户使用键盘顺序图

3. 用户切换大小写键盘为例

下一篇
举报
领券