1

如果我的主窗口中有两个文本框,我如何检查哪个文本框处于活动状态/用户正在使用?

4

2 回答 2

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
}
于 2013-08-07T06:29:50.467 回答
0

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

QWidget * QApplication::focusWidget ()

获得焦点小部件。

如果您想监控更多小部件,这种方法将允许您编写更简洁的代码。与其使用 if 的阶梯,不如使用某种查找表来选择要采取的行动。

于 2013-08-07T07:55:54.790 回答