在Qt中创建小部件预览

时间:2014-04-17 12:41:45

标签: qt

在Qt中,可以创建窗口小部件的临时预览(GUI的快照),就像Windows7中的实时任务栏预览一样(当我们将光标放在任务栏中的项目上时,快照窗口显示在最佳) ? 任何想法

2 个答案:

答案 0 :(得分:2)

您可以使用QWidget方法将小部件渲染为图像:

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向用户显示预览。

答案 1 :(得分:0)

作为evilruff has said,可以将小部件呈现为绘画设备或画家。当然,你为这个小部件的额外绘画付出了代价。

另一个选择是grab the composited widget's backing store directly as a QImage。在Qt 5中,这适用于所有平台,但OpenGL上下文支持的小部件除外。