QApplication :: desktop возвращает ноль - PullRequest
0 голосов
/ 24 августа 2018

Я хочу сделать скриншот всего рабочего пространства (у нас есть несколько мониторов здесь).В настоящее время у меня есть рабочая версия для GDI, но теперь я застрял с портированием своего программного обеспечения на Linux.

QDesktopWidget* win = qApp->desktop();
auto id = win->winId(); // CRASH HAPPENS HERE, win == nullptr
QImage pixmap = QPixmap::grabWindow(id).toImage(); //won't come here ever.

Не знаю, если это поможет понять проблему, но это то, с чем я работаю:

  • VirtualBox VM с 2 мониторами 1920x1080
  • Debian 4.17.8-1 (2018-07-20)
  • x86_64 GNU / Linux
  • LightDM + XFCE4.
  • версия xserver-xorg (в соответствии с dpkg -s): 1: 7.7 + 19

Да, я знаю, здесь иногда появляется тема создания снимка экрана под Linux.время (Xlib и прочее), но этот вопрос строго о том, как это делает Qt, и почему он работает в Windows (хотя и медленно), но не в Linux.

...