关于如何获取当前焦点控件并判断控件类型
2013-04-22 22:10
1051 查看
Part1
测试代码,通过分析可以知道焦点变换过程和相关函数作用
上面这段代码每隔一秒执行一次
输出结果如下:
刚开始启动
current item is null!
bushi QLineEdit
bushi QLineEdit
点击控件lineEdit后
shi QLineEdit
ada~
shi QLineEdit
ada~
点击另一个控件lineEdit_2后
shi QLineEdit
shi QLineEdit
shi QLineEdit
点击按钮后
bushi QLineEdit
bushi QLineEdit
由此看到,界面刚启动时候,当前焦点控件为NULL,之后迅速变为非空,但是并没有指向界面的输入框,当点击输入框的时候,当前焦点控件变为输入框,点击其他控件时焦点变为其他函数,当界面转到后台时,界面失去焦点。
Part2
代码作用是获取当前有效焦点控件,并判断是否为输入框,之后输入
测试代码,通过分析可以知道焦点变换过程和相关函数作用
QLineEdit *lineedit; QWidget *currentitem; currentitem=QApplication::focusWidget(); if(currentitem!=NULL) { if(currentitem->inherits("QLineEdit")) { qDebug()<<"shi QLineEdit"; } else { qDebug()<<"bushi QLineEdit"; } } else { qDebug()<<"current item is null!"; } if(ui->lineEdit==currentitem) { qDebug()<<"ada~"; lineedit=qobject_cast<QLineEdit *>(currentitem); lineedit->setText("dsaf"); }
上面这段代码每隔一秒执行一次
输出结果如下:
刚开始启动
current item is null!
bushi QLineEdit
bushi QLineEdit
点击控件lineEdit后
shi QLineEdit
ada~
shi QLineEdit
ada~
点击另一个控件lineEdit_2后
shi QLineEdit
shi QLineEdit
shi QLineEdit
点击按钮后
bushi QLineEdit
bushi QLineEdit
由此看到,界面刚启动时候,当前焦点控件为NULL,之后迅速变为非空,但是并没有指向界面的输入框,当点击输入框的时候,当前焦点控件变为输入框,点击其他控件时焦点变为其他函数,当界面转到后台时,界面失去焦点。
Part2
代码作用是获取当前有效焦点控件,并判断是否为输入框,之后输入
void SimuKey::slotofkey(char * keycode) { QLineEdit *lineedit; QWidget *currentitem; currentitem=QApplication::focusWidget(); if(currentitem!=NULL) { if(currentitem->inherits("QLineEdit")) { lineedit=qobject_cast<QLineEdit *>(currentitem); //lineedit->setText(lineedit->text()+QString(keycode)); lineedit->insert(QString(keycode));
} else { qDebug()<<"bushi QLineEdit"; } } }
相关文章推荐
- 关于如何获取当前焦点控件并判断控件类型
- winform学习之-----关于按键操作的一些小知识(如何获取焦点所在的当前控件)20160623
- QT获取控件焦点,判断对象类型,模拟发送按键消息
- js,onblur后下一个控件获取焦点判断、html当前活跃控件、jquery版本查看、jquery查看浏览器版本、setTimeout&setInterval
- 关于如何用JQuery判断当前操作的表单类型
- C# WinForm获取当前拥有焦点的控件
- Git学习-->关于Jenkins编译时候,如何获取Git分支的当前分支名?
- js 获取当前焦点所在的元素、给元素和input控件添加键盘监听事件、添加页面级的键盘监听事件
- 新手关于JS如何获取屏幕当前长宽的问题
- C# 如何后台判断 file控件上传的文件类型
- android如何判断当前网络类型(联网,2g,3g,wifi等)
- 牛腩购物9 用户表设计/动软生成器/金钱字段decimal(18, 2)/ 注册的时候的前台js判断/后台代码判断/正则表达式软件/RegexBuddy/设置数据库字段的唯一性约束/如何获取控件在前台html的id值/如何将C#的后台正则换成js的正则
- navicat如何让datetime类型自动获取当前时间
- 判断当前焦点在哪个控件上
- 关于GetActiveObject,如何判断所取得对象的类型、、、可以用来检测某个程序是否运行
- QT 判断当前焦点是否在某控件上
- 如何通过InfoPath中的日期选取器控件获取当前选中的月份的名称
- vc CListCtrl 如何判断列表中的内容是否被选中?如何获取CListCtrl当前选中的行
- *关于如何获取指定表的指定字段的数据类型的方法
- 关于在Servelet中如何获取当前时间的操作方法