2024年4月28日发(作者:)
Qt实现数字键盘
要在多个控件中输入内容,难点在于区分控件。每个人的思路不同实现方式也不同,
这是我的两种实现方式:
1、 重写焦点事件void focusInEvent(QFocusEvent *); 鼠标点击控件时会进入控
件的焦点事件,重写此事件可以知道用户点击了那个控件,来区分输入的对象。
2、 添加事件过滤器bool eventFilter(QObject *obj, QEvent *ev); 过滤出需要的
事件信息,来区分要在那个控件中输入信息。
下面以QlineEdit为例来实现数字键盘,下图是UI界面,使用Qt Designer 进行界
面设计。
左侧是输入栏,当点击数字键盘时,在里面输入内容。数字键盘下面的输入栏在程序
中加载显示的。当点击确认按钮时,右侧显示栏输入的内容。
下面是代码实现的内容
1、重写焦点事件
void MyLineEdit::focusInEvent( QFocusEvent *ev )
{
emit EditinEvent();//发送自定义信号
__super::focusInEvent(ev);
}
2、事件过滤器
//把需要按键输入的QLineEdit加入事件过滤器
it_1->installEventFilter(this);
it_2->installEventFilter(this);
it_3->installEventFilter(this);
发布评论