我想制作整个工作区的屏幕截图(我们在这里有多台监视器)。目前,我有适用于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,如果它有助于理解问题,但这就是我正在使用的东西:
是的,我知道,不时在Linux下拍摄屏幕快照的主题(Xlib和其他内容)出现在这里,但是这个问题严格来说是关于Qt的实现方式以及为什么它可以在Windows上运行(虽然很慢) ),但在Linux上也是如此。