findChildren is recursive, that's why you get 23 and not 5. You can check the parentWidget() of each of the results to eliminate all indirect descendants of the widget.