我正在尝试实现全局热键激活时截图的功能。我将其应用到我的项目中,这样我就可以轻松创建全局热键。
要使用 screen->grabWindow(),我必须获取活动窗口的 WinID。所以我找到了 QApplication::activeWindow()->winId() 然后使用它。
QScreen *screen = QGuiApplication::primaryScreen();
QPixmap screenShot = screen->grabWindow(QApplication::activeWindow()->winId(), 0, 0, -1,-1);
Run Code Online (Sandbox Code Playgroud)
然而,事情正在朝着错误的方向发展。当我在其他窗口中按下热键时,程序崩溃并显示“untitled2.exe已停止工作”。(抱歉无法放置图像[ http://ww2.sinaimg.cn/large/bcbe8e8cgw1euarn4mcb6j20vt09ojtk。 ])
我发现即使我简单地 qDebug() 也会发生同样的情况。不仅是winId(),还有windowTitle()、setWindowTitle()等。
qDebug() << QApplication::activeWindow()->winId();
Run Code Online (Sandbox Code Playgroud)
谁能帮我解决一下吗?多谢!