Комментарии 6
Непереносимо (в смысле непортабельно). А если вам надо будет запустить это еще и, скажем, на iOS, что делать будете? На связке Widgets+QML это решается гораздо проще, примерно так:
camera.qml
import QtQuick 2.12
import QtMultimedia 5.12
VideoOutput {
id: videoOutput
anchors.fill: parent
fillMode: VideoOutput.PreserveAspectCrop
orientation: 270
focus: false
source: Camera {
id: camera
imageCapture.onImageSaved: {
videoOutput.imageCaptured(path);
}
}
signal imageCaptured(string path)
function capture() {
camera.imageCapture.capture();
}
}
mainwindow.cpp
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
quickView = new QQuickView();
quickView->setSource(QUrl("qrc:/camera.qml"));
QObject::connect(quickView->rootObject(), SIGNAL(imageCaptured(const QString&)), this, SLOT(imageCaptured(const QString&)));
ui->verticalLayout->insertWidget(0, QWidget::createWindowContainer(quickView, this));
}
[...]
void MainWindow::captureButtonClicked()
{
QMetaObject::invokeMethod(quickView->rootObject(), "capture");
}
void MainWindow::imageCaptured(const QString& path)
{
qDebug() << path;
}
+1
define CAMSHOT_H
Что-то вспомнилось, были у меня фабрики, унаследованные от единой абстрактной фабрики. Материнской, так сказать.
#include "mother-factory.h"
+2
А потом нечаянно выходит Qt версии 6.0 и вся имплементация с использованием AndroidExtras уходит «в топку» костра ненависти и отчаяния, так как andoroidaextras там не поддерживается и, будет ли поддерживаться, еще не известно :(
0
К моменту, когда появится Qt6.2 или Qt6.4 можно будет адаптировать, убрав AndroidExtras, т.к. самое важное будет перенесено в QtBase. Может ещё что-нибудь появится. Время покажет.
QtAndroidExtras in Qt 6 — QTBUG-84382
QtAndroidExtras in Qt 6 — QTBUG-84382
+1
Qt 6 вообще ещё рано пользоваться в production, и будет рано как минимум до 6.2. Работу с JNI добавили в 6.1, только из имён классов убрали слово Android (например, вместо QAndroidJniObject теперь просто QJniObject):
https://wiki.qt.io/New_Features_in_Qt_6.1
Extras'ов больше не будет, соответствующий функционал включат в Core или другие "большие" модули.
+2
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Фото из Android смартфона в Qt Widgets