本文介绍Qt君最近编写的一个Qt键盘,该键盘主要功能有大小写切换,中英文切换(后续实现)数字输入,符号输入等基本功能,未来还会支持换肤,手写功能。

实现初衷

  • 供大家交流学习;
  • 希望以轻量级(嵌入式设备)键盘为特点不断发展该键盘项目(源码地址在文末)。

项目预览

  • 文件目录

  • 基类键盘AbstractKeyboard

class AbstractKeyboard : public QWidget
{Q_OBJECT
public:AbstractKeyboard(QWidget *parent = 0);~AbstractKeyboard();const QString name();void setName(const QString &name);public slots:virtual void update(const QString &text);void onKeyPressed(int key, QString value);signals:void keyPressed(int key, QString value);
};
  • 实现类键盘Keyboard
class Keyboard : public AbstractKeyboard
{Q_OBJECT
public:Keyboard(QWidget *parent = NULL);protected:void resizeEvent(QResizeEvent *e);private slots:void switchCapsLock();void switchSpecialChar();void switchEnOrCh();
};
  • 键盘按钮KeyButton
class KeyButton : public QPushButton
{Q_OBJECT
public:enum Type { Auto = 0, LowerCase, UpperCase, SpecialChar };struct Mode {int key;          /* Qt::Key */QString value;    /* text */QString display;  /* display text */Type type;        /* default: Auto */};KeyButton(const QList<Mode> modes = QList<Mode>(), QWidget *parent = NULL);Mode mode();void onReponse(const QObject* receiverObj, const QString &receiver);void switchCapsLock();void switchSpecialChar();void switching(); /* Cycle switch. */signals:void pressed(int key, QString value);
};

后续更新

  • 轻量级Qt键盘-介绍篇
  • 轻量级Qt键盘-原理篇
  • 轻量级Qt键盘-实现篇
  • 后续会不定期更新关于主要新增功能介绍文章。

关于更多

  • 源码地址
https://github.com/aeagean/QtKeyboard
  • 本文首发公众号:Qt君

轻量级Qt键盘-介绍篇相关推荐

  1. 轻量级Qt键盘-实现篇

    介绍该键盘项目的代码实现. 1.布局 采用垂直布局 QHBoxLayout *h1(); QHBoxLayout *h2(); QHBoxLayout *h3(); QHBoxLayout *h4() ...

  2. 轻量级Qt键盘-中文输入

    在原有的键盘基础上新增中文输入功能. 中文候选栏   中文输入候选栏ChineseWidget使用QListWidget和样式表实现: setText输入对应拼音字母,即会加载符合的拼音中文. pre ...

  3. 轻量级Qt键盘-更新谷歌汉字库

      收集了近期网友反馈的问题,除了更新谷歌汉字库,还有下列的更新: 添加长按按键重复触发按键的功能: 添加文泉驿字体. 修正了不能输入字符'.'的问题: 优化中文输入卡顿的问题:   可通过设置项目文 ...

  4. Qt键盘事件(二)——长按按键反复触发event事件问题解决

    1.问题描述 在Jungle的上一篇文章中(Qt键盘事件(一)--检测按键输入及解决无法响应方向键问题),Jungle简单实现了利用qt检测用户按键操作并将键按下\释放操作打印在Qt界面上的一个小程序 ...

  5. qt ui界面无法移动控件_使用qt 键盘上的方向键只能控制ui界面上的按钮选择,不能实现我设定的功能...

    已结贴√ 问题点数:20 回复次数:2 使用qt 键盘上的方向键只能控制ui界面上的按钮选择,不能实现我设定的功能 我做的是一个贪吃蛇游戏,现在我想实现的功能是:按下键盘上的上下左右箭头的方向按键时, ...

  6. Moebius实现Sqlserver集群~介绍篇

    今年是一个不平凡的一年,接触到了很多新艳的,让人兴奋的东西,虽然自己的牙掉了两颗,但感觉自己又年青了两岁,哈哈!进入正题,今年公司开始启用数据库集群,对于Sqlserver来说,实现方式并不是很多,一 ...

  7. QT Creator介绍

    文章目录 1 QT Creator介绍 1.1 QT Creator 1.2 QT Creator中调试的基本方法 2 Qt Creator工程管理 2.1 Qt Creator工程管理简介 2.2 ...

  8. 当前订单不支持只花呗支付是什么意思_1、(跑腿介绍篇)支付宝花呗分期线下推广...

    这篇文章主要讲第1篇<花呗分期跑腿介绍篇> 我会以问答的形式,来为大家介绍花呗分期这个业务. 一.花呗分期是什么? 花呗分期是支付宝官方推出的,为了重点宣传花呗分期线下用户去使用开展的活动 ...

  9. Kubernetes系列之Helm介绍篇

    本次系列使用的所需部署包版本都使用的目前最新的或最新稳定版,安装包地址请到公众号内回复[K8s实战]获取 介绍 Helm 是 Deis 开发的一个用于 Kubernetes 应用的包管理工具,主要用来 ...

  10. MonoRail学习-介绍篇(一)

    MonoRail学习-介绍篇 刚刚结束了使用Castle MonoRail的一个项目,所以想将在项目中的一些片段大家一起共享一样.由于这是一个网站项目,所以使用Monorail,因为他使用MVC模式, ...

最新文章

  1. MySQL 大表优化方案
  2. Swagger 2——异常[Illegal DefaultValue null for parameter type integer]解决方案
  3. Please copy/symlink the 'missing image' image at xxx
  4. linux 每周日执行脚本,Linux任务计划和周期性任务执行
  5. org.apache.hadoop.hdfs.server.namenode.SafeModeException
  6. Spring.NET学习笔记12——面向切面编程(基础篇) Level 300
  7. ROS actionlib学习(一)
  8. 淮海工学院期末考试Oracle,淮海工学院大一物理期末试卷
  9. LeetCode——7. Reverse Integer
  10. 如何学习3D建模的学习之路,学习这些成为高手吧
  11. 数据库编程--SqlServer示例
  12. 纵坐标范围_探索频率范围与频响的奥秘
  13. 计算机软件行业新三板企业,2017福布斯值得关注的新三板企业榜:软件行业、互联网服务占据大半...
  14. c语言中20的倍数为真,0723-0802 C语言笔记(李明杰前8天)
  15. 软件工程本科生实习_我从n00b实习生到工程团队主管的方式
  16. linux命令sel是什么意思,sel
  17. python人物关系网络图共现_文本分析之制作网络关系图
  18. 王者荣耀模型制作曝光
  19. .Net Micro Framework 嵌入式开发
  20. OSError: Unable to create file (unable to open file: name = ‘../working/best.hdf5 No such file or di

热门文章

  1. 游戏服务端加密如何解密
  2. Java-Maven使用jwtt验证
  3. 【基于物理的渲染(PBR)白皮书】(三)迪士尼原则的BRDF与BSDF相关总结
  4. 试题 历届试题 回文数字
  5. HashData:守护数据安全 筑牢数字经济底座
  6. 迭代期望和方差(iterated expectation,variance)
  7. html网页制作的图片打不开,网页中的图片打不开怎么办?原因与解决办法
  8. php实战搭建博客,利用laravel搭建一个迷你博客实战教程
  9. 积分上限函数求导总结
  10. 2019年十大物联网安全事件