Я пытаюсь написать оболочку для некоторых данных, которые будут храниться в контейнере.Эти данные будут взаимодействовать с QML и впредь будут содержать Q_PROPERTIES.Однако я хочу, чтобы эти данные были получены из определенного базового класса, чтобы я мог вызывать переопределенные методы без приведения.Вот пример.
class Base : public QObject
{
Q_OBJECT
Q_PROPERTY(int value READ value WRITE setValue NOTIFY valueChanged)
public:
/*implementation is irrelevant, just boilerplate code*/
}
class BaseBool : public Base {
Q_PROPERTY(bool value READ value WRITE setValue NOTIFY valueChanged)
public:
/*I want to override the functions here so I can just call them
like I would for a base class, but I want them to be different types.
I want to extend this for other types too.*/
}
Надеюсь, это имеет смысл.Очевидно, что что-то шаблонизирующее класс и имеющее Q_PROPERTY типа T было бы идеальным, однако это невозможно с текущим Qt.Есть ли достойные решения для этого?Возможно, есть более подходящие шаблоны для решения этой проблемы, но сейчас я в растерянности.