轻量级Qt键盘-介绍篇
本文介绍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键盘-介绍篇相关推荐
- 轻量级Qt键盘-实现篇
介绍该键盘项目的代码实现. 1.布局 采用垂直布局 QHBoxLayout *h1(); QHBoxLayout *h2(); QHBoxLayout *h3(); QHBoxLayout *h4() ...
- 轻量级Qt键盘-中文输入
在原有的键盘基础上新增中文输入功能. 中文候选栏 中文输入候选栏ChineseWidget使用QListWidget和样式表实现: setText输入对应拼音字母,即会加载符合的拼音中文. pre ...
- 轻量级Qt键盘-更新谷歌汉字库
收集了近期网友反馈的问题,除了更新谷歌汉字库,还有下列的更新: 添加长按按键重复触发按键的功能: 添加文泉驿字体. 修正了不能输入字符'.'的问题: 优化中文输入卡顿的问题: 可通过设置项目文 ...
- Qt键盘事件(二)——长按按键反复触发event事件问题解决
1.问题描述 在Jungle的上一篇文章中(Qt键盘事件(一)--检测按键输入及解决无法响应方向键问题),Jungle简单实现了利用qt检测用户按键操作并将键按下\释放操作打印在Qt界面上的一个小程序 ...
- qt ui界面无法移动控件_使用qt 键盘上的方向键只能控制ui界面上的按钮选择,不能实现我设定的功能...
已结贴√ 问题点数:20 回复次数:2 使用qt 键盘上的方向键只能控制ui界面上的按钮选择,不能实现我设定的功能 我做的是一个贪吃蛇游戏,现在我想实现的功能是:按下键盘上的上下左右箭头的方向按键时, ...
- Moebius实现Sqlserver集群~介绍篇
今年是一个不平凡的一年,接触到了很多新艳的,让人兴奋的东西,虽然自己的牙掉了两颗,但感觉自己又年青了两岁,哈哈!进入正题,今年公司开始启用数据库集群,对于Sqlserver来说,实现方式并不是很多,一 ...
- QT Creator介绍
文章目录 1 QT Creator介绍 1.1 QT Creator 1.2 QT Creator中调试的基本方法 2 Qt Creator工程管理 2.1 Qt Creator工程管理简介 2.2 ...
- 当前订单不支持只花呗支付是什么意思_1、(跑腿介绍篇)支付宝花呗分期线下推广...
这篇文章主要讲第1篇<花呗分期跑腿介绍篇> 我会以问答的形式,来为大家介绍花呗分期这个业务. 一.花呗分期是什么? 花呗分期是支付宝官方推出的,为了重点宣传花呗分期线下用户去使用开展的活动 ...
- Kubernetes系列之Helm介绍篇
本次系列使用的所需部署包版本都使用的目前最新的或最新稳定版,安装包地址请到公众号内回复[K8s实战]获取 介绍 Helm 是 Deis 开发的一个用于 Kubernetes 应用的包管理工具,主要用来 ...
- MonoRail学习-介绍篇(一)
MonoRail学习-介绍篇 刚刚结束了使用Castle MonoRail的一个项目,所以想将在项目中的一些片段大家一起共享一样.由于这是一个网站项目,所以使用Monorail,因为他使用MVC模式, ...
最新文章
- MySQL 大表优化方案
- Swagger 2——异常[Illegal DefaultValue null for parameter type integer]解决方案
- Please copy/symlink the 'missing image' image at xxx
- linux 每周日执行脚本,Linux任务计划和周期性任务执行
- org.apache.hadoop.hdfs.server.namenode.SafeModeException
- Spring.NET学习笔记12——面向切面编程(基础篇) Level 300
- ROS actionlib学习(一)
- 淮海工学院期末考试Oracle,淮海工学院大一物理期末试卷
- LeetCode——7. Reverse Integer
- 如何学习3D建模的学习之路,学习这些成为高手吧
- 数据库编程--SqlServer示例
- 纵坐标范围_探索频率范围与频响的奥秘
- 计算机软件行业新三板企业,2017福布斯值得关注的新三板企业榜:软件行业、互联网服务占据大半...
- c语言中20的倍数为真,0723-0802 C语言笔记(李明杰前8天)
- 软件工程本科生实习_我从n00b实习生到工程团队主管的方式
- linux命令sel是什么意思,sel
- python人物关系网络图共现_文本分析之制作网络关系图
- 王者荣耀模型制作曝光
- .Net Micro Framework 嵌入式开发
- OSError: Unable to create file (unable to open file: name = ‘../working/best.hdf5 No such file or di