Search code examples
c++qtqlayoutqtmultimedia

How to arrange QCamera with other widgets in a layout?


This is about arranging a multimedia object with widgets. Following is what I have tried:

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    m_QPushButton_calibration = new QPushButton("Calibrate", this);
    connect(m_QPushButton_calibration, SIGNAL (released()),this, SLOT (handleButton()));


    QList<QCameraInfo> l_QListQCameraInfo_available_cameras = QCameraInfo::availableCameras();
    if (l_QListQCameraInfo_available_cameras.length() > 2)
    {
        m_QCamera_required_camera = new QCamera (l_QListQCameraInfo_available_cameras[1]);
    }

    QHBoxLayout *layout = new QHBoxLayout;
    layout->addWidget(m_QPushButton_calibration);
    layout->addWidget(m_QCamera_required_camera);

    this->setLayout(layout);
}

It results in :

error: no matching function for call to 'QHBoxLayout::addWidget(QCamera*&)'
     layout->addWidget(m_QCamera_required_camera);
                                                ^

How to arrange QCamera with other widgets in a layout?


Solution

  • QCamera itself is not a widget! But from the qt doc we learn:

    "QCamera can be used with QCameraViewfinder for viewfinder display, QMediaRecorder for video recording and QCameraImageCapture for image taking."

    So I guess what you want might be a QCameraViewfinder:

    QCameraViewfinder* cameraView = new QCameraViewfinder (this);
    
    cameraView->setMediaObject (m_QCamera_required_camera);
    
    layout->addWidget(cameraView);