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

Nya*_*uko 6 c++ qt focus widget selection

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

Nej*_*jat 10

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

QWidget * fw = qApp->focusWidget();
Run Code Online (Sandbox Code Playgroud)

当聚焦小部件被更改时,会QApplication::focusChanged(QWidget *old, QWidget *now)发出信号.您可以根据焦点更改将其连接到您可以根据自己的喜好进行操作的插槽.