在Qt中,是否可以创建临时预览(GUI的快照)像Windows7中的实时任务栏预览一样(当我们将光标放在任务栏上的项目上时,一个快照窗口会显示在顶部)?有任何想法吗?
void render(QPaintDevice * target, const QPoint & targetOffset = QPoint(), const QRegion & sourceRegion = QRegion(), RenderFlags renderFlags = RenderFlags( DrawWindowBackground | DrawChildren ))
void render(QPainter * painter, const QPoint & targetOffset = QPoint(), const QRegion & sourceRegion = QRegion(), RenderFlags renderFlags = RenderFlags( DrawWindowBackground | DrawChildren ))
使用所需大小的QImage来显示用户预览。
正如evilruff所说的那样,将小部件渲染到绘图设备或绘图器中是可能的。当然,你需要为小部件的额外绘制付出代价。
另一个选择是直接获取组合小部件的后备存储作为QImage
。在Qt 5中,这适用于除了由OpenGL上下文支持的小部件之外的所有平台。
QPixmap::grabWidget
- Dmitry Sazonov