【问题标题】:Qt: Screen ShotQt:屏幕截图
【发布时间】:2016-07-06 17:49:38
【问题描述】:

我有 3 个 1024x512 的 QLabels(作为 QPixmaps)。底层接收 RGB 数据流,第二层接收 RGBA 数据流(所以不透明度可以调低看到底层),最后第三层是要绘制的标注叠加层。我正在尝试在通话时创建用户当前在窗口(而不是全屏)中查看的内容的保存图像。任何帮助或向下看的指示(类、成员、示例等)将不胜感激。

【问题讨论】:

  • 我假设所有 3 个QLabels 都在同一个QWidget 父级下(可能使用QStackedWidget 或QStackedLayout)?如果是这样,可能值得关注QWidget::render。
  • 我匹配了所有 3 个的 x-y 位置,以便每个标签在主窗口上彼此正对。 QScreen 类成员 grabWindow(WId,x,y,w,h) 为我想要做的事情工作。
  • 这里的概念是将 IR(顶部标签)中的检测覆盖在可见光谱(基本标签)上。我去掉了最上面的标签,并使用一种多边形形式来选择和隔离视图上的区域(点没有直接在标签之间映射,我太懒了,所以只有绝对重叠)。

标签: qt screenshot rgb rgba qpixmap


【解决方案1】:

自己解决了...

QScreen *This_Screen = QGuiApplication::primaryScreen();
This_Pixmap = This_Screen->grabWindow(QWidget::winId(),x,y,1024,512);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    • 2021-07-12
    • 2014-09-26
    • 1970-01-01
    • 2011-03-28
    相关资源
    最近更新 更多