我如何确定哪个 QLineEdit
在 qt 中具有当前焦点?
为 QLinEdit
设置焦点我试过:
ui->linedit->setfocus();
但它也不适合我。我该如何解决这两个问题?
最佳答案
要识别哪个焦点小部件(QlineEdit 或任何 QWidget),您需要获取所有当前的小部件子项,将每个子项都转换为 QLineEdit,并检查哪个具有焦点,示例代码:
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,本期已经回答Post :
关于c++ - 我怎样才能在qt中获得当前关注的QLineEdit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46702487/