У нас есть большое грязное приложение, написанное на C ++ и Qt4, много библиотечных зависимостей, сотни классов и нет единой структуры.Обычно он запускается как приложение с графическим интерфейсом, управляемое в интерактивном режиме, но иногда оно запускается незаметно для другой программы, которая передает ему параметры командной строки и связывается с ним через dbus.Графический интерфейс все еще показывает, но нет человека или обученной обезьяны, чтобы щелкнуть что-нибудь."Relaxen und watch das blinkenlights" В интерактивном или автоматическом режиме при запуске приложение записывает файлы изображений.
Моя работа на следующие несколько недель - добавить функцию «без графического интерфейса», чтобы приложение могло работать в автоматическом режиме и записывать файлы изображений, даже не показывая свой графический интерфейс.Внутренне изображения, которые должны быть написаны, создаются с использованием QImage и других объектов Qt, не относящихся к GUI, но они принадлежат другим объектам, которые включают в себя классы GUI Qt.После нескольких попыток понять беспорядок, я не могу найти способ распутать вещи, такие как заставить приложение создавать образы без полного полнофункционального графического интерфейса.Одно время я надеялся, что смогу просто установить xxx.visible = false;для всех xxx, которые являются объектами GUI, но это не практично или невозможно (AFIK).
Существуют ли какие-либо общие стратегии для добавления этой функции без графического интерфейса в это приложение?Какой-то метод, который не потребует глубокого изменения иерархии классов?