Я довольно новичок в использовании инфраструктуры QT в сочетании с C ++. Мне было интересно: это хорошая идея, чтобы мои классы доменов основывались на QObject? Или я должен делать это только для классов выше в иерархии? (ближе к уровню пользовательского интерфейса). Документация QT не ясна по этому вопросу:
Взято из документации QT:
Мета-объектная система представляет собой расширение C ++, которое делает язык более подходящим для программирования компонентов с истинным компонентом.
Очевидно, что я хочу создать свое приложение хорошо структурированным способом. В течение последних нескольких дней я просматривал документацию по QT, чтобы найти ответ на этот вопрос. Я не хочу совершать элементарную ошибку, которая сделает мое приложение бессильным на всю вечность; -).
Я уже посмотрел основную документацию по QObject и модели объектов Qt. Я также нашел статью freshmeat , которая помогла, но не помогла мне прийти к выводу. Что-то еще, что смущает меня, - то, что сам QT, кажется, не последовательн в этом вопросе, потому что не все классы QT используют QObject в качестве базового класса.
Преимущества использования QObject в качестве базового класса, как я их вижу:
- Иерархия
- Сигналы и слоты
- Свойства
- Возможность использовать охраняемые указатели
- Интернационализация
Однако в большинстве классов моего домена мне не нужны эти функции. Есть ли для этого правило лучшей практики? Или должно быть правило: используйте его, если вам требуется какой-либо из пунктов, упомянутых выше?
Надеюсь, это меня не смутило: -)