本文介绍了如何在Qt中获得当前关注的QLineEdit?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何确定qt当前焦点在哪个QLineEdit
?
How can I identify which QLineEdit
has the current focus in qt?
要为QLinEdit
设置焦点,我已经尝试过:
To set the focus for QLinEdit
I have tried:
ui->linedit->setfocus();
但它对我也不起作用.我该如何解决这两个问题?
but it also not working for me. How can I solve these two?
推荐答案
要识别哪个焦点小部件(QlineEdit或任何QWidget),您需要获取所有当前的小部件子级,将每个子级转换为QLineEdit,并检查哪个子级具有焦点,示例代码:
To identify which focused Widget (QlineEdit or any QWidget), you need to get all your current widget children, cast each to QLineEdit, and check which one has focus, sample code:
QList<QWidget*> mylineEdits = this->findChildren<QWidget*>();
QListIterator<QWidget*> it(mylineEdits); // iterate through the list of widgets
QWidget *lineEditField;
while (it.hasNext()) {
lineEditField = it.next(); // take each widget in the list
if(QLineEdit *lineE = qobject_cast<QLineEdit*>(lineEditField)) { // check if iterated widget is of type QLineEdit
//
if (lineE->hasFocus())
{
// this has the focus ...
}
}
}
第二个问题,将重点放在QWidget上,已经在此帖子中得到了回答:
Second issue, setting focus on QWidget, already answered in this Post:
这篇关于如何在Qt中获得当前关注的QLineEdit?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!