Создать новый тип свойств компонента.

Создадим свойство которое будет содержать список параметров. Параметр - объект содержащий: своё название, название тега с которым он связан, правила преобразования значения тега в значение параметра и, если параметр является перечислением, список возможных значений.

Создаём новые классы описывающий параметр и список параметров.

class VsqParameter
{
public:
    VsqParameter();
public:
    QString ParameterName;
    QString TagName;
    QStringList TransformRules;
    QStringList ValsList;
};
 
typedef QList<VsqParameter> VsqParameterList;

Регистрируем информацию о типах (это лучше сделать, там же где объявлены классы):

Q_DECLARE_METATYPE (VsqParameter) Q_DECLARE_METATYPE (VsqParameterList)

В начале программы регистрируем для использования в рантайме.

  storeUserTypeInfo("VsqParameterList", qRegisterMetaType<VsqParameterList>());

qRegisterMetaType - регистрирует тип в метообъектной системе. storeUserTypeInfo - позволяет сохранить номер зарегистрированного типа в нашей программе, для получения номера используйте int getUserTypeNum(QString className).

Кроме того необходимо создать редактор и «обучить» класс загрузки и сохранения проекта (TFilter) работать со свойствами данного типа.