WidgetTools::closeAllChildWidgets

This commit is contained in:
2025-11-30 21:29:32 +03:00
parent d129fbded0
commit d30e6b4927
10 changed files with 53 additions and 48 deletions

View File

@@ -0,0 +1,24 @@
#include "widgettools.h"
WidgetTools::WidgetTools()
{
}
// Рекурсивная функция для закрытия всех дочерних виджетов
void WidgetTools::closeAllChildWidgets(QWidget *parent, QString objName)
{
// Ищем всех дочерних виджетов типа QWidget
QObjectList children = parent->children();
foreach(auto obj, children)
{
if (auto wgt = qobject_cast<QWidget*>(obj))
{ // Проверяем имя объекта
if(wgt->objectName() == objName)
{
wgt->close(); // Закрываем виджет
}
closeAllChildWidgets(wgt, objName); // Рекурсия для возможных внучатых виджетов
}
}
}

View File

@@ -0,0 +1,16 @@
#ifndef WIDGETTOOLS_H
#define WIDGETTOOLS_H
#include <QWidget>
class WidgetTools
{
public:
WidgetTools();
public:
static void closeAllChildWidgets(QWidget* parent, QString objName);
};
#endif // WIDGETTOOLS_H