16,216
社区成员
发帖
与我相关
我的任务
分享
class asmsQRCodeWidgetData
{
public:
asmsQRCodeWidgetData()
{
m_pUi = NULL;
m_pVideoProbe = NULL;
m_pCameraViewer = NULL;
m_pCameraImgCapture = NULL;
m_pCamera = NULL;
}
~asmsQRCodeWidgetData()
{
}
QCamera *m_pCamera;
QCameraViewfinder *m_pCameraViewer;
QCameraImageCapture *m_pCameraImgCapture;
QVideoProbe *m_pVideoProbe;
Ui::asmsQRCodeWidget *m_pUi;
};
asmsQRCodeWidget::asmsQRCodeWidget(QWidget *parent /* = 0 */) :
QWidget(parent)
{
m_pData = new asmsQRCodeWidgetData;
m_pData->m_pUi = new Ui::asmsQRCodeWidget;
m_pData->m_pUi->setupUi(this);
m_pData->m_pCameraViewer = new QCameraViewfinder(this);
m_pData->m_pCamera = new QCamera(this);
m_pData->m_pCamera->setViewfinder(m_pData->m_pCameraViewer);
m_pData->m_pCamera->setCaptureMode(QCamera::CaptureVideo);
m_pData->m_pVideoProbe = new QVideoProbe(this);
if (m_pData->m_pVideoProbe->setSource(m_pData->m_pCamera)) {
// Probing succeeded, videoProbe->isValid() should be true.
connect(m_pData->m_pVideoProbe, SIGNAL(videoFrameProbed(QVideoFrame)),
this, SLOT(present(QVideoFrame)));
}
QGridLayout *pLayout = new QGridLayout(m_pData->m_pUi->frmCamera);
pLayout->setContentsMargins(0, 0, 0, 0);
pLayout->addWidget(m_pData->m_pCameraViewer);
m_pData->m_pUi->frmCamera->setLayout(pLayout);
//m_pData->m_pCameraViewer->setFixedSize(m_pData->m_pUi->frmCamera->size());
m_pData->m_pCameraImgCapture = new QCameraImageCapture(m_pData->m_pCamera, parent);
//connect(camera_image_capture,SIGNAL(camera_image_capture->imageCaptured(int,QImage)),this,SLOTE(displayImage(int,QImage)));
connect(m_pData->m_pCameraImgCapture,SIGNAL(imageCaptured(int,QImage)),this,SLOT(displayImage(int,QImage)));
}
asmsQRCodeWidget::~asmsQRCodeWidget()
{
}
void asmsQRCodeWidget::startCamera()
{
m_pData->m_pCamera->start();
m_pData->m_pCameraViewer->show();
}