QCameraDevice Class

The QCameraDevice class provides general information about camera devices. More...

Header: #include <QCameraDevice>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia

Public Types

enum Position { UnspecifiedPosition, BackFace, FrontFace }

Properties

Public Functions

QCameraDevice()
QCameraDevice(const QCameraDevice &other)
~QCameraDevice()
QString description() const
QByteArray id() const
bool isDefault() const
bool isNull() const
QList<QSize> photoResolutions() const
QCameraDevice::Position position() const
QList<QCameraFormat> videoFormats() const
bool operator!=(const QCameraDevice &other) const
QCameraDevice &operator=(const QCameraDevice &other)
bool operator==(const QCameraDevice &other) const

Detailed Description

QCameraDevice represents a physical camera device and its properties.

You can discover what cameras are available on a system using the availableCameras() and defaultCamera() functions. These are contained within QtMultimedia::MediaDevices.

This example prints the name of all available cameras:

 const QList<QCameraDevice> cameras = QMediaDevices::videoInputs();
 for (const QCameraDevice &cameraDevice : cameras)
     qDebug() << cameraDevice.description();

A QCameraDevice can be used to construct a QCamera. The following example instantiates a QCamera whose camera device is named mycamera:

 const QList<QCameraDevice> cameras = QMediaDevices::videoInputs();
 for (const QCameraDevice &cameraDevice : cameras) {
     if (cameraDevice.description() == "mycamera")
         camera = new QCamera(cameraDevice);
 }

You can also use QCameraDevice to get general information about a camera device such as description and physical position on the system.

 QCamera myCamera;
 QCameraDevice cameraDevice = camera->cameraDevice();

 if (cameraDevice.position() == QCameraDevice::FrontFace)
     qDebug() << "The camera is on the front face of the hardware system.";
 else if (cameraDevice.position() == QCameraDevice::BackFace)
     qDebug() << "The camera is on the back face of the hardware system.";

See also QCamera.

Member Type Documentation

enum QCameraDevice::Position

This enum specifies the physical position of the camera on the system hardware.

ConstantValueDescription
QCameraDevice::UnspecifiedPosition0The camera position is unspecified or unknown.
QCameraDevice::BackFace1The camera is on the back face of the system hardware. For example on a mobile device, it means it is on the opposite side to that of the screen.
QCameraDevice::FrontFace2The camera is on the front face of the system hardware. For example on a mobile device, it means it is on the same side as that of the screen.

See also position().

Property Documentation

[read-only] description : const QString

Returns the human-readable description of the camera.

Use this string to present the device to the user.

Access functions:

QString description() const

[read-only] id : const QByteArray

Returns the device id of the camera

This is a unique ID to identify the camera and may not be human-readable.

Access functions:

QByteArray id() const

[read-only] isDefault : const bool

Returns true if this is the default camera device.

Access functions:

bool isDefault() const

[read-only] position : const Position

Returns the physical position of the camera on the hardware system.

Access functions:

QCameraDevice::Position position() const

[read-only] videoFormats : const QList<QCameraFormat>

Returns the video formats supported by the camera.

Access functions:

QList<QCameraFormat> videoFormats() const

Member Function Documentation

QCameraDevice::QCameraDevice()

Constructs a null camera device

QCameraDevice::QCameraDevice(const QCameraDevice &other)

Constructs a copy of other.

[noexcept] QCameraDevice::~QCameraDevice()

Destroys the QCameraDevice.

bool QCameraDevice::isNull() const

Returns true if this QCameraDevice is null or invalid.

QList<QSize> QCameraDevice::photoResolutions() const

Returns a list of resolutions that the camera can use to capture still images.

See also QImageCapture.

bool QCameraDevice::operator!=(const QCameraDevice &other) const

Returns true if this QCameraDevice is different from other.

QCameraDevice &QCameraDevice::operator=(const QCameraDevice &other)

Sets the QCameraDevice object to be equal to other.

bool QCameraDevice::operator==(const QCameraDevice &other) const

Returns true if this QCameraDevice is equal to other.