问:如何检测是否选中了小部件?

时间:2015-03-02 10:07:04

标签: c++ qt widget focus selection

我没有看到任何信号/插槽/功能可以告诉我鼠标是否选中了小部件? 有没有可能有这样的功能告诉我当前的QWidget是否被选中?我如何区分“当前小部件被选中”和“其中一个子小部件被选中?”

1 个答案:

答案 0 :(得分:8)

您可以使用hasFocus()功能检查对窗口小部件的关注。 focus属性保存窗口小部件是否具有键盘输入焦点。您还可以使用QApplication::focusWidget()获取具有焦点的应用程序的当前窗口小部件。您可以获得指向聚焦小部件的指针,如:

QWidget * fw = qApp->focusWidget();

当焦点窗口小部件发生变化时,QApplication::focusChanged(QWidget *old, QWidget *now)信号被发出。您可以根据焦点变化将其连接到您可以根据需要执行任何操作的插槽。