【发布时间】:2026-01-30 15:35:01
【问题描述】:
我想在应用程序范围内检查一些东西。具体来说,我想检查添加到应用程序中的每个小部件。
类似的事情可以在 JavaScript/HTML 中完成,您可以在其中添加 DOM 突变侦听器,该侦听器会在 DOM 更改时触发。
我可以在QApplication 上收听添加的小部件吗?具体来说,捕获添加到QApplication 对象的小部件作为子级或添加到任何*小部件或它们的子级、子级等的小部件...
如果不可能,最好的解决方法是什么?
【问题讨论】:
-
您真的需要检查应用程序中的每一个小部件吗?
-
@bnaecker 是的。我需要能够“等待小部件” - 例如。当出现符合某些抽象描述的小部件时触发事件。只有另一种方法是在一个间隔上循环整个 qapplication 并找到小部件。这很讨厌。我还缓存了一些小部件选择器,我想在添加/删除小部件时更新缓存。
-
什么是“抽象描述”?这些小部件是特定类的吗?例如,您需要检查所有
QLabel对象,还是您自己的任何自定义类?还是整个应用程序中的任何小部件? -
@bnaecker 抽象描述是一个接受
QWidget*并返回真或假的谓词。所以是的,正如我在我的问题和对您的评论的最后回复中所说,我想检查在 qapplication 中添加或删除的 any 小部件。但这个问题特别是关于添加。 -
我不是在问“抽象描述”的定义,而是你的实际谓词函数是什么。这可能有助于减少问题的规模,并可能提出更好的解决方案。
标签: qt testing qapplication