Всегда ли обязателен Q*Application?

 
0
 
C++
ava
DTF | 29.12.2016, 17:29
Привет!
Хочу написать программку, одной из ее функций будет манипуляция с окнами других программ (снятие скриншотов с них, клики, изменение размеров и т.п.)

Манипуляции с окном в данный момент пытаюсь делать через qt.

В частности, скриншот как-то так:

for (const auto& screen : QGuiApplication::screens()) {
   if (screen) {
      QPixmap screenshot = screen->grabWindow(window_id);

      if (!screenshot.isNull() && screenshot.save("screenshot.png")) {
         cout << "saved" << endl;
      }
   }
}


Однако, чтобы код работал, в начале программы нужно создать объектик

QApplication a(argc, argv);

, без которого у меня ничего не работает (QGuiApplication::screens() пуст)

Если бы программа активно использовала qt, то может, это и не было бы проблемой.

Однако, я хочу функционал, который отвечает за манипуляцию с чужими окнами, вынести в отдельный модуль (и мб потом заменить на другой).
Сама же программа будет консольной, и зависимость от Qt ей вроде как не к лицу.

Как же тогда сделать правильно?
Весь функционал работы с окнами засунуть в синглтон, который будет создавать объект Q*Application, и этот синглтон создавать внутри модуля?

Или все же есть вариант без глобальных объектов?
Kommentare (0)

Kommentare werden nicht hinzugefügt

Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
  DTF
advanced
Absenden