QApplication :: desktop返回null

时间:2018-08-24 09:56:26

标签: c++ qt screenshot

我想制作整个工作区的屏幕截图(我们在这里有多台监视器)。目前,我有适用于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.

Dunno,如果它有助于理解问题,但这就是我正在使用的东西:

  • 带有2个监视器1920x1080的VirtualBox VM
  • 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上也是如此。

0 个答案:

没有答案