gpt4 book ai didi

c++ - 如何确保 Qt Widget.repaint 已完成运行?

转载 作者:行者123 更新时间:2023-11-30 18:03:49 25 4
gpt4 key购买 nike

我目前在使用 Qt 图形 View 框架时遇到问题,即,我想清除 QGraphicScene 背景颜色,然后运行一个函数来拍摄网络摄像头图片。到目前为止,当我使用 QWidget.repaint 时,屏幕仅在大约 1 秒后重新绘制,然后相机函数已被调用,并且捕获的图像始终关闭。这是我的代码目前的样子。

//Scene is a QGraphicScene
//View is a QGraphicView
//Camera is a camera object
Scene.setBackgroundBrush(Qt::Blue)
View.repaint()
Camera.Capture()

我尝试用另一个函数包装 repaint() 调用并使用信号和槽调用,但它仍然失败。我想知道是否有办法暂停程序直到屏幕刷新。

最佳答案

QGraphicsView 比大多数 QWidget 子类有更多的功能,我对它还不够熟悉,无法确定到底发生了什么,但我可能会冒险猜测您的问题与场景实际渲染到视口(viewport)小部件上的事实有关。也许调用 viewport->repaint() 会给你想要的结果?

此外,除非您确实需要在这种情况下使用网络摄像头,否则您可以在场景上调用 ::render() 并向其传递一个 QImage可以直接保存到文件。

关于c++ - 如何确保 Qt Widget.repaint 已完成运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8002716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com