Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Add QCamera to CMakeList (ROS integrated Qt Project)
Qt 6.11 is out! See what's new in the release blog

Add QCamera to CMakeList (ROS integrated Qt Project)

Scheduled Pinned Locked Moved Solved General and Desktop
19 Posts 5 Posters 3.3k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • VRoninV VRonin

    @aliemrenebiler said in Add QCamera to CMakeList (ROS integrated Qt Project):

    Here is what I wrote:

    No, it's much easier:
    change:

    # Find Qt5 libraries
    find_package(Qt5 REQUIRED COMPONENTS
      Core
      Qml
      Quick
      Widgets
    )
    

    qt5_use_modules(talker_wig Core Widgets)
    into

    # Find Qt5 libraries
    find_package(Qt5 REQUIRED COMPONENTS
      Core
      Qml
      Quick
      Widgets
      Multimedia
    )
    

    qt5_use_modules(talker_wig Core Widgets Multimedia)

    For people ending here from Google

    qt5_use_modules is obsolete, OP needs to support a very old version of CMake. The modern way is to simply use target_link_libraries(talker_wig Qt5::Core Qt5::Widgets Qt5::Multimedia)

    A Offline
    A Offline
    aliemrenebiler
    wrote on last edited by aliemrenebiler
    #9

    @VRonin said in Add QCamera to CMakeList (ROS integrated Qt Project):

    Multimedia

    THANK YOU SO MUCH! That solved the Camera class problem.

    Bu a similar error occured this time. qcamereviewfinder.h also should be added.

    How can i add it?

    Screenshot from 2021-06-24 12-44-06.png

    CMakeList.txt file:

    # Find Qt5 libraries
    find_package(Qt5 REQUIRED COMPONENTS
      Core
      Qml
      Quick
      Widgets
      Multimedia
    )
    find_package(Qt5Multimedia REQUIRED COMPONENTS
      QCamera
      QCameraViewfinder
      QCameraInfo
      QCameraImageCapture
    )
    
    1 Reply Last reply
    0
    • VRoninV Offline
      VRoninV Offline
      VRonin
      wrote on last edited by
      #10

      @aliemrenebiler said in Add QCamera to CMakeList (ROS integrated Qt Project):

      find_package(Qt5Multimedia REQUIRED COMPONENTS
      QCamera
      QCameraViewfinder
      QCameraInfo
      QCameraImageCapture
      )

      This is useless

      Did you add
      qt5_use_modules(talker_wig Core Widgets Multimedia) and qt5_use_modules(listener_wig Core Widgets Multimedia)

      "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
      ~Napoleon Bonaparte

      On a crusade to banish setIndexWidget() from the holy land of Qt

      A 1 Reply Last reply
      0
      • VRoninV VRonin

        @aliemrenebiler said in Add QCamera to CMakeList (ROS integrated Qt Project):

        find_package(Qt5Multimedia REQUIRED COMPONENTS
        QCamera
        QCameraViewfinder
        QCameraInfo
        QCameraImageCapture
        )

        This is useless

        Did you add
        qt5_use_modules(talker_wig Core Widgets Multimedia) and qt5_use_modules(listener_wig Core Widgets Multimedia)

        A Offline
        A Offline
        aliemrenebiler
        wrote on last edited by
        #11

        @VRonin Yeah it was, we deleted that part.

        And also yes, we added
        qt5_use_modules(talker_wig Core Widgets Multimedia) and qt5_use_modules(listener_wig Core Widgets Multimedia)

        1 Reply Last reply
        0
        • VRoninV Offline
          VRoninV Offline
          VRonin
          wrote on last edited by
          #12

          I suspect something might be going wrong in qt5_wrap_ui just to confirm this is the case, could you add #include <QCameraViewFinder> in one of your cpp files and see if that works?

          Do you really need to support CMake 2.8.3 or is it an example you downloaded and it's not a hard requirement?

          "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
          ~Napoleon Bonaparte

          On a crusade to banish setIndexWidget() from the holy land of Qt

          A 1 Reply Last reply
          0
          • VRoninV VRonin

            I suspect something might be going wrong in qt5_wrap_ui just to confirm this is the case, could you add #include <QCameraViewFinder> in one of your cpp files and see if that works?

            Do you really need to support CMake 2.8.3 or is it an example you downloaded and it's not a hard requirement?

            A Offline
            A Offline
            aliemrenebiler
            wrote on last edited by
            #13

            @VRonin We already added QCameraViewFinder but it is #include <QCameraViewfinder> with "f".

            CMake version is not important, it was in the example.

            Full code where QCameraViewfinder exist:

            #include "mainwindow.h"
            #include "ui_mainwindow.h"
            
            #include <QCameraViewfinder>
            #include <QCameraInfo>
            #include <QtWidgets>
            
            Q_DECLARE_METATYPE(QCameraInfo)
            
            MainWindow::MainWindow(QWidget *parent) :
                QMainWindow(parent),
                ui(new Ui::MainWindow)
            {
                ui->setupUi(this);
                connect(this, &MainWindow::newString, this, &MainWindow::newStringSlot);
                connect(this, &MainWindow::newString2, this, &MainWindow::newString2Slot);
            
                //Camera devices:
                QActionGroup *videoDevicesGroup = new QActionGroup(this);
                videoDevicesGroup->setExclusive(true);
                const QList<QCameraInfo> availableCameras = QCameraInfo::availableCameras();
                for (const QCameraInfo &cameraInfo : availableCameras) {
                    QAction *videoDeviceAction = new QAction(cameraInfo.description(), videoDevicesGroup);
                    videoDeviceAction->setCheckable(true);
                    videoDeviceAction->setData(QVariant::fromValue(cameraInfo));
                    if (cameraInfo == QCameraInfo::defaultCamera())
                        videoDeviceAction->setChecked(true);
                }
                connect(videoDevicesGroup, &QActionGroup::triggered, this, &MainWindow::updateCameraDevice);
                setCamera(QCameraInfo::defaultCamera());
            }
            
            void MainWindow::newStringSlot(QString txt)
            {
                ui->list_lines->addItem(txt);
            }
            void MainWindow::newString2Slot(QString txt2)
            {
                ui->list_lines_2->addItem(txt2);
            }
            
            void MainWindow::setCamera(const QCameraInfo &cameraInfo)
            {
                m_camera.reset(new QCamera(cameraInfo));
            
                connect(m_camera.data(), QOverload<QCamera::Error>::of(&QCamera::error), this, &MainWindow::displayCameraError);
            
                m_camera->setViewfinder(ui->viewfinder);
            
                updateLockStatus(m_camera->lockStatus(), QCamera::UserRequest);
            
                connect(m_camera.data(), QOverload<QCamera::LockStatus, QCamera::LockChangeReason>::of(&QCamera::lockStatusChanged),
                        this, &MainWindow::updateLockStatus);
            
                m_camera->start();
            }
            
            
            void MainWindow::keyPressEvent(QKeyEvent * event)
            {
                if (event->isAutoRepeat())
                    return;
            
                switch (event->key()) {
                case Qt::Key_CameraFocus:
                    displayViewfinder();
                    m_camera->searchAndLock();
                    event->accept();
                    break;
                default:
                    QMainWindow::keyPressEvent(event);
                }
            }
            
            void MainWindow::keyReleaseEvent(QKeyEvent *event)
            {
                if (event->isAutoRepeat())
                    return;
            
                switch (event->key()) {
                case Qt::Key_CameraFocus:
                    m_camera->unlock();
                    break;
                default:
                    QMainWindow::keyReleaseEvent(event);
                }
            }
            
            void MainWindow::updateLockStatus(QCamera::LockStatus status, QCamera::LockChangeReason reason)
            {
                QColor indicationColor = Qt::black;
            
                switch (status) {
                case QCamera::Searching:
                    indicationColor = Qt::yellow;
                    break;
                case QCamera::Locked:
                    indicationColor = Qt::darkGreen;
                    break;
                case QCamera::Unlocked:
                    indicationColor = reason == QCamera::LockFailed ? Qt::red : Qt::black;
                }
            }
            
            void MainWindow::startCamera()
            {
                m_camera->start();
            }
            
            void MainWindow::stopCamera()
            {
                m_camera->stop();
            }
            
            void MainWindow::setExposureCompensation(int index)
            {
                m_camera->exposure()->setExposureCompensation(index*0.5);
            }
            
            void MainWindow::displayCameraError()
            {
                QMessageBox::warning(this, tr("Camera Error"), m_camera->errorString());
            }
            
            void MainWindow::updateCameraDevice(QAction *action)
            {
                setCamera(qvariant_cast<QCameraInfo>(action->data()));
            }
            
            void MainWindow::displayViewfinder()
            {
                ui->stackedWidget->setCurrentIndex(0);
            }
            
            void MainWindow::closeEvent(QCloseEvent *event)
            {
                if (m_isCapturingImage) {
                    setEnabled(false);
                    m_applicationExiting = true;
                    event->ignore();
                } else {
                    event->accept();
                }
            }
            
            MainWindow::~MainWindow()
            {
                delete ui;
            }
            
            VRoninV 1 Reply Last reply
            0
            • M Offline
              M Offline
              mchinand
              wrote on last edited by mchinand
              #14

              Edit: Oops, I see VRonin, already mentioned this above.

              Make sure to also add it to a target_link_libraries statement in your CMakeLists.txt project file, e.g.:

              target_link_libraries(${PROJECT_NAME} Qt5::Multimedia)

              This does end up affecting the include directories too which I hadn't expected.

              1 Reply Last reply
              0
              • A aliemrenebiler

                @VRonin We already added QCameraViewFinder but it is #include <QCameraViewfinder> with "f".

                CMake version is not important, it was in the example.

                Full code where QCameraViewfinder exist:

                #include "mainwindow.h"
                #include "ui_mainwindow.h"
                
                #include <QCameraViewfinder>
                #include <QCameraInfo>
                #include <QtWidgets>
                
                Q_DECLARE_METATYPE(QCameraInfo)
                
                MainWindow::MainWindow(QWidget *parent) :
                    QMainWindow(parent),
                    ui(new Ui::MainWindow)
                {
                    ui->setupUi(this);
                    connect(this, &MainWindow::newString, this, &MainWindow::newStringSlot);
                    connect(this, &MainWindow::newString2, this, &MainWindow::newString2Slot);
                
                    //Camera devices:
                    QActionGroup *videoDevicesGroup = new QActionGroup(this);
                    videoDevicesGroup->setExclusive(true);
                    const QList<QCameraInfo> availableCameras = QCameraInfo::availableCameras();
                    for (const QCameraInfo &cameraInfo : availableCameras) {
                        QAction *videoDeviceAction = new QAction(cameraInfo.description(), videoDevicesGroup);
                        videoDeviceAction->setCheckable(true);
                        videoDeviceAction->setData(QVariant::fromValue(cameraInfo));
                        if (cameraInfo == QCameraInfo::defaultCamera())
                            videoDeviceAction->setChecked(true);
                    }
                    connect(videoDevicesGroup, &QActionGroup::triggered, this, &MainWindow::updateCameraDevice);
                    setCamera(QCameraInfo::defaultCamera());
                }
                
                void MainWindow::newStringSlot(QString txt)
                {
                    ui->list_lines->addItem(txt);
                }
                void MainWindow::newString2Slot(QString txt2)
                {
                    ui->list_lines_2->addItem(txt2);
                }
                
                void MainWindow::setCamera(const QCameraInfo &cameraInfo)
                {
                    m_camera.reset(new QCamera(cameraInfo));
                
                    connect(m_camera.data(), QOverload<QCamera::Error>::of(&QCamera::error), this, &MainWindow::displayCameraError);
                
                    m_camera->setViewfinder(ui->viewfinder);
                
                    updateLockStatus(m_camera->lockStatus(), QCamera::UserRequest);
                
                    connect(m_camera.data(), QOverload<QCamera::LockStatus, QCamera::LockChangeReason>::of(&QCamera::lockStatusChanged),
                            this, &MainWindow::updateLockStatus);
                
                    m_camera->start();
                }
                
                
                void MainWindow::keyPressEvent(QKeyEvent * event)
                {
                    if (event->isAutoRepeat())
                        return;
                
                    switch (event->key()) {
                    case Qt::Key_CameraFocus:
                        displayViewfinder();
                        m_camera->searchAndLock();
                        event->accept();
                        break;
                    default:
                        QMainWindow::keyPressEvent(event);
                    }
                }
                
                void MainWindow::keyReleaseEvent(QKeyEvent *event)
                {
                    if (event->isAutoRepeat())
                        return;
                
                    switch (event->key()) {
                    case Qt::Key_CameraFocus:
                        m_camera->unlock();
                        break;
                    default:
                        QMainWindow::keyReleaseEvent(event);
                    }
                }
                
                void MainWindow::updateLockStatus(QCamera::LockStatus status, QCamera::LockChangeReason reason)
                {
                    QColor indicationColor = Qt::black;
                
                    switch (status) {
                    case QCamera::Searching:
                        indicationColor = Qt::yellow;
                        break;
                    case QCamera::Locked:
                        indicationColor = Qt::darkGreen;
                        break;
                    case QCamera::Unlocked:
                        indicationColor = reason == QCamera::LockFailed ? Qt::red : Qt::black;
                    }
                }
                
                void MainWindow::startCamera()
                {
                    m_camera->start();
                }
                
                void MainWindow::stopCamera()
                {
                    m_camera->stop();
                }
                
                void MainWindow::setExposureCompensation(int index)
                {
                    m_camera->exposure()->setExposureCompensation(index*0.5);
                }
                
                void MainWindow::displayCameraError()
                {
                    QMessageBox::warning(this, tr("Camera Error"), m_camera->errorString());
                }
                
                void MainWindow::updateCameraDevice(QAction *action)
                {
                    setCamera(qvariant_cast<QCameraInfo>(action->data()));
                }
                
                void MainWindow::displayViewfinder()
                {
                    ui->stackedWidget->setCurrentIndex(0);
                }
                
                void MainWindow::closeEvent(QCloseEvent *event)
                {
                    if (m_isCapturingImage) {
                        setEnabled(false);
                        m_applicationExiting = true;
                        event->ignore();
                    } else {
                        event->accept();
                    }
                }
                
                MainWindow::~MainWindow()
                {
                    delete ui;
                }
                
                VRoninV Offline
                VRoninV Offline
                VRonin
                wrote on last edited by
                #15

                @aliemrenebiler said in Add QCamera to CMakeList (ROS integrated Qt Project):

                CMake version is not important,

                Then don't use obsolete concepts:

                cmake_minimum_required(VERSION 3.9)
                project(sabun)
                
                ## Find catkin macros and libraries
                find_package(catkin REQUIRED COMPONENTS
                  roscpp
                  std_msgs
                )
                
                
                # Configure Catkin dependencies
                catkin_package(
                  CATKIN_DEPENDS
                    roscpp
                    std_msgs
                )
                ###############################
                # Basic, non-qt talker/listener
                add_executable(listener src/listener.cpp)
                add_executable(talker src/talker.cpp)
                set_target_properties(listener PROPERTIES
                    CXX_STANDARD 11
                    CXX_STANDARD_REQUIRED ON
                )
                set_target_properties(talker PROPERTIES
                    CXX_STANDARD 11
                    CXX_STANDARD_REQUIRED ON
                )
                
                target_include_directories(listener PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${catkin_INCLUDE_DIRS})
                target_include_directories(talker PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${catkin_INCLUDE_DIRS})
                target_link_libraries(listener PRIVATE ${catkin_LIBRARIES})
                target_link_libraries(talker PRIVATE ${catkin_LIBRARIES})
                
                ################################################
                # Cmd line talker/listener running qt event loop
                # Find Qt5 libraries
                find_package(Qt5 REQUIRED COMPONENTS
                  Core
                  Qml
                  Quick
                  Widgets
                  Multimedia
                )
                add_executable(listener_qt src/listener_qt.cpp)
                add_executable(talker_qt src/talker_qt.cpp)
                target_include_directories(listener_qt PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${catkin_INCLUDE_DIRS})
                target_include_directories(talker_qt PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${catkin_INCLUDE_DIRS})
                set_target_properties(listener_qt PROPERTIES
                    AUTOMOC ON
                    CXX_STANDARD 11
                    CXX_STANDARD_REQUIRED ON
                )
                set_target_properties(talker_qt PROPERTIES
                    AUTOMOC ON
                    CXX_STANDARD 11
                    CXX_STANDARD_REQUIRED ON
                )
                target_link_libraries(listener_qt PRIVATE
                  ${catkin_LIBRARIES}
                  Qt5::Core
                  Qt5::Multimedia
                )
                
                target_link_libraries(talker_qt PRIVATE
                  ${catkin_LIBRARIES}
                  Qt5::Core
                  Qt5::Multimedia
                )
                
                
                ######################################
                # Talker and Listener using QML gui
                
                # Build executables with source, MOC result files, RCC result files
                add_executable(listener_qml src/listener_qml.cpp include/qml_mediator.h src/display.qrc)
                add_executable(talker_qml src/talker_qml.cpp include/qml_mediator.h src/display.qrc)
                target_include_directories(listener_qml PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${catkin_INCLUDE_DIRS})
                target_include_directories(talker_qml PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${catkin_INCLUDE_DIRS})
                set_target_properties(listener_qml PROPERTIES
                    AUTOMOC ON
                    AUTORCC ON
                    CXX_STANDARD 11
                    CXX_STANDARD_REQUIRED ON
                )
                set_target_properties(talker_qml PROPERTIES
                    AUTOMOC ON
                    AUTORCC ON
                    CXX_STANDARD 11
                    CXX_STANDARD_REQUIRED ON
                )
                
                target_link_libraries(listener_qml PRIVATE
                  ${catkin_LIBRARIES}
                  Qt5::Core
                  Qt5::Qml
                  Qt5::Quick
                  Qt5::Multimedia
                )
                
                target_link_libraries(talker_qml PRIVATE
                  ${catkin_LIBRARIES}
                  Qt5::Core
                  Qt5::Qml
                  Qt5::Quick
                  Qt5::Multimedia
                )
                
                ########################################
                # Talker and Listener using QWidgets gui
                
                add_executable(talker_wig src/talker_wig.cpp src/mainwindow.cpp include/mainwindow.h ui/mainwindow.ui)
                add_executable(listener_wig src/listener_wig.cpp src/mainwindow.cpp include/mainwindow.h ui/mainwindow.ui)
                target_include_directories(talker_wig PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${catkin_INCLUDE_DIRS})
                target_include_directories(listener_wig PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${catkin_INCLUDE_DIRS})
                set_target_properties(listener_wig PROPERTIES
                    AUTOMOC ON
                    AUTORCC ON
                    AUTOUIC ON
                    CXX_STANDARD 11
                    CXX_STANDARD_REQUIRED ON
                )
                set_target_properties(talker_wig PROPERTIES
                    AUTOMOC ON
                    AUTORCC ON
                    AUTOUIC ON
                    CXX_STANDARD 11
                    CXX_STANDARD_REQUIRED ON
                )
                target_link_libraries(listener_wig PRIVATE
                  ${catkin_LIBRARIES}
                  Qt5::Core
                  Qt5::Widgets
                  Qt5::Multimedia
                )
                target_link_libraries(talker_wig PRIVATE
                  ${catkin_LIBRARIES}
                  Qt5::Core
                  Qt5::Widgets
                  Qt5::Multimedia
                )
                

                "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                ~Napoleon Bonaparte

                On a crusade to banish setIndexWidget() from the holy land of Qt

                A 1 Reply Last reply
                1
                • VRoninV VRonin

                  @aliemrenebiler said in Add QCamera to CMakeList (ROS integrated Qt Project):

                  CMake version is not important,

                  Then don't use obsolete concepts:

                  cmake_minimum_required(VERSION 3.9)
                  project(sabun)
                  
                  ## Find catkin macros and libraries
                  find_package(catkin REQUIRED COMPONENTS
                    roscpp
                    std_msgs
                  )
                  
                  
                  # Configure Catkin dependencies
                  catkin_package(
                    CATKIN_DEPENDS
                      roscpp
                      std_msgs
                  )
                  ###############################
                  # Basic, non-qt talker/listener
                  add_executable(listener src/listener.cpp)
                  add_executable(talker src/talker.cpp)
                  set_target_properties(listener PROPERTIES
                      CXX_STANDARD 11
                      CXX_STANDARD_REQUIRED ON
                  )
                  set_target_properties(talker PROPERTIES
                      CXX_STANDARD 11
                      CXX_STANDARD_REQUIRED ON
                  )
                  
                  target_include_directories(listener PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${catkin_INCLUDE_DIRS})
                  target_include_directories(talker PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${catkin_INCLUDE_DIRS})
                  target_link_libraries(listener PRIVATE ${catkin_LIBRARIES})
                  target_link_libraries(talker PRIVATE ${catkin_LIBRARIES})
                  
                  ################################################
                  # Cmd line talker/listener running qt event loop
                  # Find Qt5 libraries
                  find_package(Qt5 REQUIRED COMPONENTS
                    Core
                    Qml
                    Quick
                    Widgets
                    Multimedia
                  )
                  add_executable(listener_qt src/listener_qt.cpp)
                  add_executable(talker_qt src/talker_qt.cpp)
                  target_include_directories(listener_qt PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${catkin_INCLUDE_DIRS})
                  target_include_directories(talker_qt PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${catkin_INCLUDE_DIRS})
                  set_target_properties(listener_qt PROPERTIES
                      AUTOMOC ON
                      CXX_STANDARD 11
                      CXX_STANDARD_REQUIRED ON
                  )
                  set_target_properties(talker_qt PROPERTIES
                      AUTOMOC ON
                      CXX_STANDARD 11
                      CXX_STANDARD_REQUIRED ON
                  )
                  target_link_libraries(listener_qt PRIVATE
                    ${catkin_LIBRARIES}
                    Qt5::Core
                    Qt5::Multimedia
                  )
                  
                  target_link_libraries(talker_qt PRIVATE
                    ${catkin_LIBRARIES}
                    Qt5::Core
                    Qt5::Multimedia
                  )
                  
                  
                  ######################################
                  # Talker and Listener using QML gui
                  
                  # Build executables with source, MOC result files, RCC result files
                  add_executable(listener_qml src/listener_qml.cpp include/qml_mediator.h src/display.qrc)
                  add_executable(talker_qml src/talker_qml.cpp include/qml_mediator.h src/display.qrc)
                  target_include_directories(listener_qml PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${catkin_INCLUDE_DIRS})
                  target_include_directories(talker_qml PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${catkin_INCLUDE_DIRS})
                  set_target_properties(listener_qml PROPERTIES
                      AUTOMOC ON
                      AUTORCC ON
                      CXX_STANDARD 11
                      CXX_STANDARD_REQUIRED ON
                  )
                  set_target_properties(talker_qml PROPERTIES
                      AUTOMOC ON
                      AUTORCC ON
                      CXX_STANDARD 11
                      CXX_STANDARD_REQUIRED ON
                  )
                  
                  target_link_libraries(listener_qml PRIVATE
                    ${catkin_LIBRARIES}
                    Qt5::Core
                    Qt5::Qml
                    Qt5::Quick
                    Qt5::Multimedia
                  )
                  
                  target_link_libraries(talker_qml PRIVATE
                    ${catkin_LIBRARIES}
                    Qt5::Core
                    Qt5::Qml
                    Qt5::Quick
                    Qt5::Multimedia
                  )
                  
                  ########################################
                  # Talker and Listener using QWidgets gui
                  
                  add_executable(talker_wig src/talker_wig.cpp src/mainwindow.cpp include/mainwindow.h ui/mainwindow.ui)
                  add_executable(listener_wig src/listener_wig.cpp src/mainwindow.cpp include/mainwindow.h ui/mainwindow.ui)
                  target_include_directories(talker_wig PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${catkin_INCLUDE_DIRS})
                  target_include_directories(listener_wig PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${catkin_INCLUDE_DIRS})
                  set_target_properties(listener_wig PROPERTIES
                      AUTOMOC ON
                      AUTORCC ON
                      AUTOUIC ON
                      CXX_STANDARD 11
                      CXX_STANDARD_REQUIRED ON
                  )
                  set_target_properties(talker_wig PROPERTIES
                      AUTOMOC ON
                      AUTORCC ON
                      AUTOUIC ON
                      CXX_STANDARD 11
                      CXX_STANDARD_REQUIRED ON
                  )
                  target_link_libraries(listener_wig PRIVATE
                    ${catkin_LIBRARIES}
                    Qt5::Core
                    Qt5::Widgets
                    Qt5::Multimedia
                  )
                  target_link_libraries(talker_wig PRIVATE
                    ${catkin_LIBRARIES}
                    Qt5::Core
                    Qt5::Widgets
                    Qt5::Multimedia
                  )
                  
                  A Offline
                  A Offline
                  aliemrenebiler
                  wrote on last edited by
                  #16

                  @VRonin sorry but that didn't work :(

                  Makefile:145: recipe for target 'all' failed
                  make: *** [all] Error 2
                  Invoking "make -j8 -l8" failed
                  

                  We just discovered that we don't need CameraViewfinder. We completely deleted it from mainwindow.cpp but still ui_mainwindow.h sees it.

                  In file included from /home/aliemre/QTCreator_Files/aliemre_ws/src/ROS-QML-Deneme-V5/ROS_QML_Example-master/src/mainwindow.cpp:2:0:
                  /home/aliemre/QTCreator_Files/aliemre_ws/build/ROS-QML-Deneme-V5/ROS_QML_Example-master/ui_mainwindow.h:24:10: fatal error: qcameraviewfinder.h: No such file or directory
                   #include "qcameraviewfinder.h"
                  
                  VRoninV 1 Reply Last reply
                  0
                  • A aliemrenebiler

                    @VRonin sorry but that didn't work :(

                    Makefile:145: recipe for target 'all' failed
                    make: *** [all] Error 2
                    Invoking "make -j8 -l8" failed
                    

                    We just discovered that we don't need CameraViewfinder. We completely deleted it from mainwindow.cpp but still ui_mainwindow.h sees it.

                    In file included from /home/aliemre/QTCreator_Files/aliemre_ws/src/ROS-QML-Deneme-V5/ROS_QML_Example-master/src/mainwindow.cpp:2:0:
                    /home/aliemre/QTCreator_Files/aliemre_ws/build/ROS-QML-Deneme-V5/ROS_QML_Example-master/ui_mainwindow.h:24:10: fatal error: qcameraviewfinder.h: No such file or directory
                     #include "qcameraviewfinder.h"
                    
                    VRoninV Offline
                    VRoninV Offline
                    VRonin
                    wrote on last edited by
                    #17

                    @aliemrenebiler said in Add QCamera to CMakeList (ROS integrated Qt Project):

                    Makefile:145: recipe for target 'all' failed
                    make: *** [all] Error 2
                    Invoking "make -j8 -l8" failed

                    This is not a great error, did it spit out anything more detailed and useful?

                    ui_mainwindow.h sees it.

                    Can you post the contents of it?

                    "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                    ~Napoleon Bonaparte

                    On a crusade to banish setIndexWidget() from the holy land of Qt

                    A 1 Reply Last reply
                    0
                    • VRoninV VRonin

                      @aliemrenebiler said in Add QCamera to CMakeList (ROS integrated Qt Project):

                      Makefile:145: recipe for target 'all' failed
                      make: *** [all] Error 2
                      Invoking "make -j8 -l8" failed

                      This is not a great error, did it spit out anything more detailed and useful?

                      ui_mainwindow.h sees it.

                      Can you post the contents of it?

                      A Offline
                      A Offline
                      aliemrenebiler
                      wrote on last edited by aliemrenebiler
                      #18

                      @VRonin ui_mainwindow.h is not a library file, it is basicly "mainwindow.ui"

                      After I wrote that, I discovered that qcameraviewfinder.h is neccessary. I added it again and will try to implement other things on your CMakeList.txt, I will post it later.

                      [EDIT]
                      I tried to add it like this.

                      find_package(Qt5Multimedia REQUIRED COMPONENTS
                        qcameraviewfinder.h
                      )
                      
                      1 Reply Last reply
                      0
                      • A Offline
                        A Offline
                        aliemrenebiler
                        wrote on last edited by
                        #19

                        I will close this section and start a new one.

                        1 Reply Last reply
                        0

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved