Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt:如何检测是否选择了小部件?_C++_Qt_Widget_Focus_Selection - Fatal编程技术网

C++ Qt:如何检测是否选择了小部件?

C++ Qt:如何检测是否选择了小部件?,c++,qt,widget,focus,selection,C++,Qt,Widget,Focus,Selection,我没有看到任何信号/插槽/函数可以告诉我是否有一个小部件被鼠标选中? 有没有可能有这样一个功能来告诉我是否选择了当前的QWidget?如何区分“选择了当前小部件”和“选择了其子小部件之一?”您可以使用hasFocus()函数检查小部件上的焦点focus属性保存小部件是否具有键盘输入焦点。您还可以使用QApplication::focusWidget()获取具有焦点的应用程序的当前小部件。您可以获得指向聚焦小部件的指针,如: QWidget * fw = qApp->focusWidget(

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

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

QWidget * fw = qApp->focusWidget();

当焦点部件更改时,会发出信号。您可以将其连接到一个插槽,在该插槽中根据焦点的更改做任何您想做的事情。

常规
QWidged
支持选择吗?选择是指聚焦吗?@Nejat,也可以。我想要实现的是,当鼠标单击一个小部件时,它将某个值设置为1,当鼠标单击其他任何东西时,它将该值设置为0。我使用一个qtimer来检查hasFocus()在1Hz下对某些
customWidget
的输出。无论我如何单击该
customWidget
,输出总是false?你是说它总是返回false?你的小部件是什么类型的?嗨,我发现我需要先设置FocusPolicy,然后才能关注这个小部件。但是,当我单击其他任何地方(而不是小部件上)时,如何清除当前小部件的焦点呢?我必须手动操作吗,或者Qt有一些标志?