QtKeyboard-master(桌面虚拟键盘)

 

介绍

数字键盘

英文

中文

 

符号

大写

 

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. 用户切换大小写键盘为例

    KeyButton

    Mode为一个状态,

     

    List存储了这个按键的多个状态,用于切换大小写switchCapsLock和特殊符号switchSpecialChar

     

    按键信息的传递流程:

     

原文地址:https://www.cnblogs.com/tangyuanjie/p/14304611.html