Qt获取活动文本框

时间:2013-08-06 20:41:17

标签: c++ qt user-interface

如果我的主窗口中有两个文本框,我如何检查用户正在使用哪一个文本框?

2 个答案:

答案 0 :(得分:2)

您可以使用QApplication::focusWidget()功能查看当前具有焦点的窗口小部件。

或者您可以使用QWidget::hasFocus()功能查看文本框是否具有焦点。

   edit_A = new QTextEdit(this);
   edit_B = new QTextEdit(this);
   .
   .
   .
void MyClass::someFunction()
{
   if(edit_A->hasFocus())
      //edit_A is being used
   else if(edit_B->hasFocus())
      //edit_B is being used
}

答案 1 :(得分:0)

之前的答案是正确的,但以防您想要监控更多可以使用的组件

QWidget * QApplication::focusWidget ()

获取焦点小部件。

如果您想要监控更多小部件,这种方法将允许您制作更干净的代码。而不是使用ifs的阶梯只需使用某种查找表来选择要采取的行动。