添加单反相机控制看板

This commit is contained in:
tangchao0503
2026-04-14 16:44:26 +08:00
parent d326dabff7
commit 24d34f39be
7 changed files with 351 additions and 0 deletions

View File

@ -0,0 +1,95 @@
#include "SingleLensReflexCameraWindow.h"
SingleLensReflexCameraWindow::SingleLensReflexCameraWindow(QWidget* parent)
: QDialog(parent)
{
ui.setupUi(this);
m_SLRCameraThread = new QThread();
m_SingleLensReflexCameraOperation = new SingleLensReflexCameraOperation();
m_SingleLensReflexCameraOperation->moveToThread(m_SLRCameraThread);
m_SLRCameraThread->start();
connect(ui.openSLRCamera_btn, &QPushButton::clicked, this, &SingleLensReflexCameraWindow::openSLRCamera);
connect(ui.closeSLRCamera_btn, &QPushButton::clicked, this, &SingleLensReflexCameraWindow::closeSLRCamera);
connect(this, &SingleLensReflexCameraWindow::openSLRCameraSignal, m_SingleLensReflexCameraOperation, &SingleLensReflexCameraOperation::OpenSLRCamera);
connect(m_SingleLensReflexCameraOperation, &SingleLensReflexCameraOperation::CamOpenedSignal, this, &SingleLensReflexCameraWindow::onCamOpened);
connect(m_SingleLensReflexCameraOperation, &SingleLensReflexCameraOperation::CamClosedSignal, this, &SingleLensReflexCameraWindow::onCamClosed);
connect(m_SingleLensReflexCameraOperation, &SingleLensReflexCameraOperation::PlotSignal, this, &SingleLensReflexCameraWindow::PlotSLRImageSignal);
connect(m_SingleLensReflexCameraOperation, &SingleLensReflexCameraOperation::CamClosedSignal, this, &SingleLensReflexCameraWindow::SLRCamClosedSignal);
}
SingleLensReflexCameraWindow::~SingleLensReflexCameraWindow()
{
m_SLRCameraThread->quit();
m_SLRCameraThread->wait();
delete m_SingleLensReflexCameraOperation;
m_SingleLensReflexCameraOperation = nullptr;
}
void SingleLensReflexCameraWindow::openSLRCamera()
{
if (!m_SingleLensReflexCameraOperation->getRecordStatus())
{
emit openSLRCameraSignal();
}
}
void SingleLensReflexCameraWindow::onCamOpened()
{
ui.openSLRCamera_btn->setEnabled(false);
ui.closeSLRCamera_btn->setEnabled(true);
ui.openSLRCamera_btn->setText(QString::fromLocal8Bit("已打开"));
}
void SingleLensReflexCameraWindow::closeSLRCamera()
{
m_SingleLensReflexCameraOperation->CloseSLRCamera();
}
void SingleLensReflexCameraWindow::onCamClosed()
{
ui.openSLRCamera_btn->setEnabled(true);
ui.closeSLRCamera_btn->setEnabled(false);
ui.openSLRCamera_btn->setText(QString::fromLocal8Bit("打 开"));
}
//-------------------------------------------------------------------------------------------------------------------------------
SingleLensReflexCameraOperation::SingleLensReflexCameraOperation()
{
m_func = nullptr;
record = false;
}
SingleLensReflexCameraOperation::~SingleLensReflexCameraOperation()
{
}
void SingleLensReflexCameraOperation::OpenSLRCamera()
{
}
void SingleLensReflexCameraOperation::OpenSLRCamera_callback()
{
}
void SingleLensReflexCameraOperation::setCallback(void(*func)())
{
m_func = func;
}
void SingleLensReflexCameraOperation::CloseSLRCamera()
{
std::cout << "SingleLensReflexCameraOperation::CloseSLRCamera关闭单反相机" << std::endl;
record = false;
emit CamClosedSignal();
}