QCamera取景器:如果有父窗口则不显示

时间:2015-07-19 23:29:22

标签: camera qt5 pyqt5

我正在尝试使用PyQt5中的QCameraViewfinder查看相机流。问题很容易描述:如果取景器没有父节点,我可以看到它,如果我将小部件设置为父节点,我看不到它。

此代码有效(我可以看到一个包含来自摄像头的流的窗口):

app = QApplication(sys.argv)
cam = QCamera()
vf = QCameraViewfinder()
cam.setViewfinder(vf)
vf.show()
cam.start()
app.exec_()

这不起作用(窗口保持灰色):

app = QApplication(sys.argv)
wid = QWidget()
cam = QCamera()
vf = QCameraViewfinder(wid)
cam.start()
cam.setViewfinder(vf)
wid.show()
app.exec_()

我阅读了文档,但我没有找到任何与此相关的内容,可能是我错过了一些内容。

发生了什么事?

1 个答案:

答案 0 :(得分:1)

cam.viewfinder之前设置cam.start并为小部件和取景器设置setGeometry()之后,

代码可以正常工作:

app = QApplication(sys.argv)
wid = QWidget()
wid.setGeometry(20,200,700,600)
cam = QCamera()
vf = QCameraViewfinder(wid)
vf.setGeometry(50,50,600,550)
cam.setViewfinder(vf)
cam.start()
wid.show()
app.exec_()