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.mzph.cn/news/238388.shtml

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

相关文章

计算机体系结构实验——Branch-Target Buffers

实验五 Branch-Target Buffers 本次实验的主要目的是加深对Branch-Target Buffers的理解。掌握使用Branch-Target Buffers减少或增加分支带来的延迟的情况。 实验内容&#xff1a; 将以下程序段修改为可利用WinMIPS64模拟器运行的程序。假设R3的初始值为R240 在使用forward…

业务逻辑漏洞有哪些?漏洞攻击防御及代码示例

文章目录 简介危害成因攻击防御代码示例1. 未经验证的重要操作2. 认证绕过3. 逻辑时间窗口漏洞4. 负载测试漏洞 修复 业务逻辑漏洞是指软件或系统的逻辑设计上的缺陷&#xff0c;这些缺陷可能被攻击者利用&#xff0c;从而导致意料之外的行为。下面是对业务逻辑漏洞的简介、危害…

基于 FFmpeg 的跨平台视频播放器简明教程(十二):Android SurfaceView 显示图片和播放视频

系列文章目录 基于 FFmpeg 的跨平台视频播放器简明教程&#xff08;一&#xff09;&#xff1a;FFMPEG Conan 环境集成基于 FFmpeg 的跨平台视频播放器简明教程&#xff08;二&#xff09;&#xff1a;基础知识和解封装&#xff08;demux&#xff09;基于 FFmpeg 的跨平台视频…

【LeetCode:2866. 美丽塔 II | 单调栈 + 前后缀数组】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

flink watermark 实例分析

WATERMARK 定义了表的事件时间属性&#xff0c;其形式为: WATERMARK FOR rowtime_column_name AS watermark_strategy_expression rowtime_column_name 把一个现有的列定义为一个为表标记事件时间的属性。该列的类型必须为 TIMESTAMP(3)/TIMESTAMP_LTZ(3)&#xff0c;且是 sche…

2023年12月GESP认证图形化编程四级真题试卷

2023年12月GESP认证Scratch图形化等级考试&#xff08;四级&#xff09;真题试卷 题目总数&#xff1a;27 总分数&#xff1a;100 选择题 第 1 题 单选题 现代计算机是指电子计算机&#xff0c;它所基于的是&#xff08; &#xff09;体系结构 A. 艾伦图灵 B. …

Valentina Studio Pro for Mac:高效数据库管理工具

作为一款强大而高效的数据库管理工具&#xff0c;Valentina Studio Pro for Mac在Mac平台上的表现无疑是令人印象深刻的。无论您是初学者还是专业数据库管理员&#xff0c;Valentina Studio Pro都能够满足您的需要&#xff0c;并提供一流的工具和功能来简化数据库管理的过程。 …

KBU808-ASEMI适配高端电源KBU808

编辑&#xff1a;ll KBU808-ASEMI适配高端电源KBU808 型号&#xff1a;KBU808 品牌&#xff1a;ASEMI 封装&#xff1a;KBU-4 最大平均正向电流&#xff1a;8A 最大重复峰值反向电压&#xff1a;800V 产品引线数量&#xff1a;4 产品内部芯片个数&#xff1a;4 产品内…

Docker 编译OpenHarmony 4.0 release

一、背景介绍 1.1、环境配置 编译环境&#xff1a;Ubuntu 20.04OpenHarmony版本&#xff1a;4.0 release平台设备&#xff1a;RK3568 OpenHarmony 3.2更新至OpenHarmony 4.0后&#xff0c;公司服务器无法编译通过&#xff0c;总是在最后几十个文件时报错,错误码4000&#xf…

C#电源串口调试

目的 记录串口调试的遇到的一些问题以及相应的解决方法 1.串口定义:串口是计算机与其他硬件传输数据的通道&#xff0c;在计算机与外设通信时起到重要作用 2.串口通信的基础知识 C#中的串口通信类 C#使用串口通信类是SerialPort(),该类使用方法是 new 一个 SerialPort对象 为S…

【C语言】自定义类型:结构体深入解析(二)结构体内存对齐宏offsetof计算偏移量结构体传参

文章目录 &#x1f4dd;前言&#x1f320; 结构体内存对齐&#x1f309;内存对齐包含结构体的计算&#x1f320;宏offsetof计算偏移量&#x1f309;为什么存在内存对⻬?&#x1f320; 结构体传参&#x1f6a9;总结 &#x1f4dd;前言 本小节&#xff0c;我们学习结构的内存对…

R语言【cli】——通过cli_abort用 cli 格式的内容显示错误、警告或信息,内部调用cli_bullets和inline-makeup

cli_abort(message,...,call .envir,.envir parent.frame(),.frame .envir ) 先从那些不需要下大力气理解的参数入手&#xff1a; 参数【.envir】&#xff1a;进行万能表达式编译的环境。 参数【.frame】&#xff1a;抛出上下文。默认用于参数【.trace_bottom】&#xff…

Redis实现日榜|直播间榜单|排行榜|Redis实现日榜01

前言 直播间贡献榜是一种常见的直播平台功能&#xff0c;用于展示观众在直播过程中的贡献情况。它可以根据观众的互动行为和贡献值进行排名&#xff0c;并实时更新&#xff0c;以鼓励观众积极参与直播活动。 在直播间贡献榜中&#xff0c;每个观众都有一个对应的贡献值&#…

力扣日记12.21【二叉树篇】98. 验证二叉搜索树

力扣日记&#xff1a;【二叉树篇】98. 验证二叉搜索树 日期&#xff1a;2023.12.21 参考&#xff1a;代码随想录、力扣 98. 验证二叉搜索树 题目描述 难度&#xff1a;中等 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义…

啥?你还不道数据库?赶紧进来看吧!

操作系统&#xff1a; windows&#xff1a;win10、win11、win7、windows Server2016 Linux/Unix &#xff1a;红帽&#xff08;RedHat&#xff09;、Bebian、SUSE MacOS Linux系统&#xff1a;CantOS&#xff08;yum、dnf&#xff09;、Ubuntu&#xff08;apt、apt—get&am…

Ubuntu 常用命令之 df 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 在Ubuntu系统下&#xff0c;df命令是用来查看文件系统的磁盘空间占用情况的。df是disk free的缩写&#xff0c;这个命令可以获取硬盘被占用了多少空间&#xff0c;还有多少空间是可用的&#xff0c;硬盘的挂载点等信息。 df命令的…

【Python】matplotlib画图_饼状图

柱状图主要使用pie()函数&#xff0c;基本格式如下&#xff1a; plt.pie(x,explodeNone,labelsNone,colorsNone,autopctsNone,pctdistance0.6,shadowFalse,labeldistance1.1,staatangleNone,radiusNone,counterclockTrue,wedgepropsNone,textpropsNone,center(0,0),frameFalse…

PIC单片机项目(7)——基于PIC16F877A的智能灯光设计

1.功能设计 使用PIC16F877A单片机&#xff0c;检测环境关照&#xff0c;当光照比阈值低的时候&#xff0c;开灯。光照阈值可以通过按键进行设置&#xff0c;同时阈值可以保存在EEPROM中&#xff0c;断电不丢失。使用LCD1602进行显示&#xff0c;第一行显示测到的实时光照强度&a…

代码随想录算法训练营Day7 | 344.反转字符串、541.反转字符串||、替换数字、151.反转字符串中的单词、右旋字符串

LeetCode 344 反转字符串 本题思路&#xff1a;反转字符串比较简单&#xff0c;定义两个指针&#xff0c;一个 i 0, 一个 j s.length-1。然后定义一个临时变量 tmp&#xff0c;进行交换 s[i] 和 s[j]。 class Solution {public void reverseString(char[] s) {int i 0;int …

华为二层交换机与防火墙配置实例

二层交换机与防火墙对接上网配置示例 组网图形 图1 二层交换机与防火墙对接上网组网图 二层交换机简介配置注意事项组网需求配置思路操作步骤配置文件相关信息 二层交换机简介 二层交换机指的是仅能够进行二层转发&#xff0c;不能进行三层转发的交换机。也就是说仅支持二层…