qt连接hiki相机进行拍照保存

.pro     

   QT工程pro文件模板变量(TEMPLATE)模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:

app - 建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。
lib - 建立一个库的makefile。
vcapp - 建立一个应用程序的Visual Studio项目文件。
vclib - 建立一个库的Visual Studio项目文件。
subdirs - 这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile

引入MVS库文件和头文件
INCLUDEPATH += /opt/MVS/include/
               /opt/MVS/include/MvCameraControl.h

LIBS +=     /opt/MVS/lib/64/libMvCameraControl.so


        控制按钮是否可点击的时候,setEnabled() 和 setClickable() 都可以做到,只要将它们设置成false ,按钮就不可点击,设置成true,按钮就可以点击。

setCheckable(true)为属性,表示可以选中
setChecked(true)为属性的值,表示已经选中

提取用户输入到EditText中的文本信息并暂时储存。

getText()方法用于检索数据,String变量来存储数据,setText()方法在应用别处显示数据。

这块代码是从相机列表中寻找出你选的相机调整增益,需要调整的代码与这个代码类似修改一些就好了

int MainWindow::GetTriggerMode()
{MVCC_ENUMVALUE stEnumTriggerModeValue = { 0 };MVCC_ENUMENTRY stEnumTriggerModeEntry = { 0 };int nRet = m_pcMyCamera->GetEnumValue("TriggerMode", &stEnumTriggerModeValue);if (MV_OK != nRet){return nRet;}ui->SelchangeTriggerswitchCombo->clear();for (int i = 0; i < stEnumTriggerModeValue.nSupportedNum; i++){memset(&stEnumTriggerModeEntry, 0, sizeof(stEnumTriggerModeEntry));stEnumTriggerModeEntry.nValue = stEnumTriggerModeValue.nSupportValue[i];m_pcMyCamera->GetEnumEntrySymbolic("TriggerMode", &stEnumTriggerModeEntry);ui->SelchangeTriggerswitchCombo->addItem((QString)stEnumTriggerModeEntry.chSymbolic);}for (int i = 0; i < stEnumTriggerModeValue.nSupportedNum; i++){if (stEnumTriggerModeValue.nCurValue == stEnumTriggerModeValue.nSupportValue[i]){m_nTriggerMode = i;ui->SelchangeTriggerselCombo->setCurrentIndex(m_nTriggerMode);}}return MV_OK;
}

这块的代码就是判断按键是否被按下,是否需要进行像素格式,曝光等参数的调整。


void MainWindow::on_GetParameterButton_clicked()
{int nRet = GetTriggerSelector();if (nRet != MV_OK){ui->SelchangeTriggerselCombo->setEnabled(false);}nRet = GetTriggerMode();if (nRet != MV_OK){ui->SelchangeTriggerswitchCombo->setEnabled(false);}nRet = GetTriggerSource();if (nRet != MV_OK){ui->SelchangeTriggersourceCombo->setEnabled(false);}nRet = GetExposureTime();if (nRet != MV_OK){ui->ExposureTimeLineEdit->setEnabled(false);}nRet = GetDigitalShiftGain();if (nRet != MV_OK){ui->PreampGainLineEdit->setEnabled(false);}nRet = GetPreampGain();if (nRet != MV_OK){ui->SelchangePreampgainCombo->setEnabled(false);}nRet = GetAcquisitionLineRateEnable();if (nRet != MV_OK){ui->AcquisitionLineRateEnableCheckBox->setEnabled(false);}nRet = GetAcquisitionLineRate();if (nRet != MV_OK){ui->AcquisitionLineRateLineEdit->setEnabled(false);}nRet = GetResultingLineRate();if (nRet != MV_OK){ui->ResultingLineRateLineEdit->setEnabled(false);}nRet = GetPixelFormat();if (nRet != MV_OK){ui->SelchangePixelformatCombo->setEnabled(false);}nRet = GetImageCompressionMode();if (nRet != MV_OK){ui->SelchangeImageCompressionModeCombo->setEnabled(false);}
}

 

设置的这些按钮在代码中会设置bool类型的变量,通过setEnabled(x)是true还是false来判断是否按下按钮。

bool                    m_bTriggerModeCheck;bool                    m_bPreampGain;bool                    m_bAcquisitionLineRate;bool                    m_bHBMode;bool                    m_bGrabbing;      //bool                    m_bOpenDevice;    // en:Whether to open device


void MainWindow::EnableControls(bool bIsCameraReady)
{ui->OpenButton->setEnabled(m_bOpenDevice ? false : (bIsCameraReady ? true : false));ui->CloseButton->setEnabled((m_bOpenDevice && bIsCameraReady) ? true : false);ui->StartGrabbingButton->setEnabled((m_bGrabbing && bIsCameraReady) ? false : (m_bOpenDevice ? true : false));ui->StopGrabbingButton->setEnabled(m_bGrabbing ? true : false);ui->SoftwareOnceButton->setEnabled((m_bGrabbing && m_bTriggerModeCheck) ? true : false);ui->SaveBmpButton->setEnabled(m_bGrabbing ? true : false);ui->SaveTiffButton->setEnabled(m_bGrabbing ? true : false);ui->SavePngButton->setEnabled(m_bGrabbing ? true : false);ui->SaveJpgButton->setEnabled(m_bGrabbing ? true : false);ui->ExposureTimeLineEdit->setEnabled(m_bOpenDevice ? true : false);ui->PreampGainLineEdit->setEnabled(m_bOpenDevice ? true : false);ui->AcquisitionLineRateLineEdit->setEnabled((m_bOpenDevice && m_bAcquisitionLineRate) ? true : false);ui->ResultingLineRateLineEdit->setEnabled(m_bOpenDevice ? true : false);ui->SelchangeTriggerselCombo->setEnabled(m_bOpenDevice ? true : false);ui->SelchangeTriggerswitchCombo->setEnabled(m_bOpenDevice ? true : false);ui->GetParameterButton->setEnabled(m_bOpenDevice ? true : false);ui->SetParameterButton->setEnabled(m_bOpenDevice ? true : false);ui->SelchangeTriggersourceCombo->setEnabled(m_bOpenDevice ? true : false);ui->SelchangePixelformatCombo->setEnabled((m_bOpenDevice &&!m_bGrabbing) ? true : false);ui->SelchangeImageCompressionModeCombo->setEnabled((m_bOpenDevice && m_bHBMode &&!m_bGrabbing)? true : false);ui->SelchangePreampgainCombo->setEnabled((m_bOpenDevice && m_bPreampGain) ? true : false);ui->AcquisitionLineRateEnableCheckBox->setEnabled((m_bOpenDevice &&m_bAcquisitionLineRate)? true : false);ui->ResultingLineRateLineEdit->setEnabled(false);if (!m_bOpenDevice){ui->AcquisitionLineRateEnableCheckBox->setChecked(false);ui->ExposureTimeLineEdit->setText(QString::number(0,10));ui->PreampGainLineEdit->setText(QString::number(0,10));ui->AcquisitionLineRateLineEdit->setText(QString::number(0,10));ui->ResultingLineRateLineEdit->setText(QString::number(0,10));}
}

如需源码--百度网盘
链接http://:https://pan.baidu.com/s/1ZFi0ciW2L4q2UNnWeOSt1Q?pwd=ajuh 
提取码:ajuh
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/307842.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C/S医院检验LIS系统源码

一、检验科LIS系统概述&#xff1a; LIS系统即实验室信息管理系统。LIS系统能实现临床检验信息化&#xff0c;检验科信息管理自动化。其主要功能是将检验科的实验仪器传出的检验数据经数据分析后&#xff0c;自动生成打印报告&#xff0c;通过网络存储在数据库中&#xff…

前端 -- 基础 常用标签 ( 图像标签及其属性详解)

目录 图像标签 &#xff1a; 插入图像 图像标签的其它属性 &#xff1a; alt 属性 title 属性 width 属性 height 属性 border 属性 注意 图像标签 &#xff1a; 在我们的网页中&#xff0c;可以看到 好多 好多 图片&#xff0c;那这些图片又是怎样 在…

S7-1200PLC脉冲轴位置控制功能块(SCL代码)

S7-1200PLC脉冲轴控制梯形图代码请参考下面链接文章&#xff1a; https://rxxw-control.blog.csdn.net/article/details/127920634https://rxxw-control.blog.csdn.net/article/details/127920634 1、脉冲轴配置 2、机械参数和硬限位设置 3、回原配置 4、轴2配置 未完...

resnet18

ResNet18的基本含义是&#xff0c;网络的基本架构是ResNet&#xff0c;网络的深度是18层。但是这里的网络深度指的是网络的权重层&#xff0c;也就是包括池化&#xff0c;激活&#xff0c;线性层。而不包括批量化归一层&#xff0c;池化层。 transforms.RandomCrop(32, pa…

MindOpt 云上建模求解平台:多求解器协同优化

前言 数学规划是一种数学优化方法&#xff0c;主要是寻找变量的取值在特定的约束情况下&#xff0c;使我们的决策目标得到一个最大或者最小值的决策。 使用数学规划的方法我们需要确定问题的目标、约束、变量的取值范围&#xff0c;然后进行数学建模&#xff0c;将数学公式转化…

年薪最高160万,鸿蒙开发者迎来黄金期!

华为正致力于让鸿蒙系统&#xff08;HarmonyOS&#xff09;成为中国的 Andorid。 鸿蒙操作系统诞生于 2019 年&#xff0c;彼时恰逢华为被禁止使用谷歌应用。一晃 4 年&#xff0c;鸿蒙操作系统已经更新到了 4.0 版本&#xff0c;截止今年 8 月&#xff0c;已有超过 7 亿台设备…

【南方CASS干货教程】CASS11使用时提示 “请不要在虚拟机中运行此程序”,解决办法

【南方CASS干货教程】CASS11使用时提示 “请不要在虚拟机中运行此程序”,解决办法 文章目录 前言一、问题描述二、解决办法方法一:管理员身份运行DOC系统方法二:内核隔离中设置方法三:进入电脑BOIS,关闭虚拟化技术总结前言 ` 在CASS11安装文章后,有人留言说安装后提示“…

【C语言】数据结构——排序二(快排)

&#x1f497;个人主页&#x1f497; ⭐个人专栏——数据结构学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 导读&#xff1a;数组打印与交换1. 交换排序1.1 基本思想&#xff1a;1.2 冒泡与快排的异同 2. 冒泡排序2.1 基本思想2.2 …

C++:第十一讲DFS深搜

Everyday English Your optimal career is simply this: Share the real you with physical world through th e process of creative self-expression. 你的最佳职业很简单&#xff0c;就是这样&#xff1a;通过创造性自我表达的途径和世界分享真实的你。 前言 今天带着大家…

卷积核和学习和训练

如果我们已知原始的图像数据&#xff0c;和这个图像经过某个卷积核计算后&#xff0c;得到的新的数据&#xff0c;那么如何计算出这个卷积核中的具体参数呢&#xff1f; 例如&#xff0c;已知输入图像是12*12的&#xff0c;经过某个3*3的卷积核&#xff0c;得到的输出数据是10*…

Go 如何通过代码进行格式化 gomft命令

我们都知道 使用JetBrains GoLand 快捷键可以快速对代码进行格式化 现在将使用go的代码进行格式化 源代码如下&#xff1a; package mainimport "fmt"func main() {var n1 int 19var n2 float32 4.78//var n3 bool false//var n4 byte avar s1 string…

JoySSL怎么样

JoySSL是一家专业的SSL证书服务提供商&#xff0c;致力于为网站和在线业务提供最佳的安全加密解决方案。以下是JoySSL的一些优点&#xff1a; 提供多种类型的SSL证书选择&#xff1a;JoySSL提供单域名、多域名、通配符等不同类型的SSL证书&#xff0c;以满足不同网站的需求。证…