Установить значение члена класса по его имени

У меня есть класс, полученный из QObject и у него есть несколько членов.
Я загружаю файл конфигурации с param value синтаксис. каждый param является членом класса, и я хочу установить его значение value,

Как это возможно, если это действительно так? Большое спасибо!

PS Я мог бы создать ассоциативный массив, но это не то, что я предпочитаю.

1

Решение

У вас есть два способа сделать это:

  1. Объявите своих участников как свойства, используя Q_PROPERTY макро. Затем вы можете установить его по имени, используя QObject::setProperty(..),
  2. Объявите метод установки с именем свойства (например, с добавленным «set») и Q_INVOKABLE макрос (или просто сделать это slot), затем используйте QMetaObject::invokeMethod(..) называть это по имени.
4

Другие решения

Это не возможно в C ++. Единственный способ — это ассоциативный массив

0