我在camera.qml中有qml相机小部件。qml 组件是从放置在后台堆栈小部件上的 Qt 小部件“WidgetCamera”加载的。该小部件在创建时就启动了相机设备。
如何使相机仅在小部件显示在前台时启动。反之亦然,当小部件进入后台时如何释放相机?
相机.qml
Item {
width: 640
height: 360
Camera {
id: camera
}
VideoOutput {
source: camera
anchors.fill: parent
}
}
Run Code Online (Sandbox Code Playgroud)
widgetCamera.h
class WidgetCamera : public QWidget
{
Q_OBJECT
public:
WidgetCamera() {
QQuickWidget *qw= new QQuickWidget;
qw->setSource(QUrl("qrc:///camera.qml"));
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
主窗口.h
class MainWindow : QMainWindow
{
Q_OBJECT
public:
MainWindow() {
QStackedWidget *sw = new QStackedWidget;
sw->addWidget(new QWidget());
sw->addWidget(new WidgetCamera());
// ...
}
}
Run Code Online (Sandbox Code Playgroud)