• 新建Qt项目

  • 拖控件,跟MFC相似直接拖拽即可

  • 头文件与cpp文件
  • mainwindow.cpp
  • mainwindow.h
  • 构造函数与析构函数
  • .pro文件
  1. 加载Qt文件选择.pro文件
  • 水平布局与垂直布局

  • 将控件拖入到GroupBox,Scroll Area等盒子类控件时注意将控件进行布局,避免截面乱掉。

  • 按住ctrl连续选择多个控件进行布局,下图效果就是scroll Area

  • 界面比=比例调整

  • 关联Slider与spinBox

  • Tab Widge 做页面

  • 添加槽函数

  • 添加槽函数

  • spinBox的控件名叫做prameter通过ui->设置值

  • 编译Hello World

  • 此处类比cout<<


  • QMessageBox



  • radioButton连接槽函数

    1.当空间nofiPoint被选中的时候,通过信号槽SIGNAL(点击事件)触发槽函数(onFitMode())

    2.判断radiobutton是否被按下

  • Qt打印文字
    .由于系统默认编译的是C++编译器,当在Qt中打印文字时多为乱码,将字符串转为Qt类型 fromLocal8Bit

  • 配置Halcon dll,include,lib文件
    1.include
    2.lib +dll

    3.在.pro文件中手动添加依赖项

    4.头文件与命名空间

  • 改动.pro文件要清除makefile

  • 并清空项目


    5.绑定窗口

  • gvMain是窗口控件的名字

  • windowHandle是窗口句柄

  • Qt中常用的m_scene显示窗口

  • 当绑定Halcon窗口时要注释掉,不然会冲突

  • 以相机SDK为例,需要单张读取图像文件时绑定Halcon窗口,连续采集不绑定即可。

  • 通过图标加载文件

    1.添加Resource

    2.添加前缀和文件

    3.点击保存


    4.输入文件名

    5.双击添加图标


    6.为图标添加槽函数

    7.读取图片三种形式写法

void MainWindow::on_actionOpenImage_triggered()
{qDebug()<<"Enter success!";HObject  ho_Image;HTuple   hv_FileName;//1.绝对路径  相对路径//hv_FileName = "C://Users//Administrator//Pictures//Saved Pictures//timg6ZAGKYHR.jpg";//hv_FileName = ".\\picture\\280269.jpg";//2.对话框选择路径的写法QString path = QFileDialog::getOpenFileName(this,"open address","pixmap","chose file(*.png *.jpg)");if(path == "") return;hv_FileName      =  HTuple(path.toLatin1().data());ReadImage(&ho_Image,hv_FileName);DispObj(ho_Image, WindowHandle);
}
  • 将编译器设置为Qt的编译器
  • 相机SDK采集线程
    1.通过 run ()函数采集每帧图像数据

    1.QImage 数据
void CaptureThread::run()
{forever{if(!pause_status){if(quit) break;if (CameraGetImageBuffer(g_hCamera,&g_tFrameHead,&g_pRawBuffer,2000) == CAMERA_STATUS_SUCCESS){CameraImageProcess(g_hCamera,g_pRawBuffer,g_pRgbBuffer,&g_tFrameHead);CameraReleaseImageBuffer(g_hCamera,g_pRawBuffer);if(g_tFrameHead.uiMediaType==CAMERA_MEDIA_TYPE_MONO8){memcpy(g_readBuf,g_pRgbBuffer,g_W_H_INFO.buffer_size);if(quit) break;QImage img(g_readBuf, g_W_H_INFO.sensor_width, g_W_H_INFO.sensor_height,QImage::Format_Indexed8);img.setColorTable(grayColourTable);emit captured(img);}else{memcpy(g_readBuf,g_pRgbBuffer,g_W_H_INFO.buffer_size*3);if(quit) break;QImage img = QImage((const uchar*)g_readBuf, g_W_H_INFO.sensor_width,  g_W_H_INFO.sensor_height, QImage::Format_RGB888);//QImage img(g_readBuf, g_W_H_INFO.sensor_width, g_W_H_INFO.sensor_height,QImage::Format_RGB888);emit captured(img);}g_read_fps++;//缁熻鎶撳彇甯х巼}else{printf("timeout \n");usleep(1000);}} else usleep(1000);if(quit) break;}
}
  • 我用的是MindVision相机



2.SDK输出Buffer直接转Halcon


3.连接槽函数

  • 采集图像函数
 void captured(QImage img);
  • 连接槽函数
  connect(m_thread, SIGNAL(captured(QImage)),this, SLOT(Image_process(QImage)), Qt::BlockingQueuedConnection);
  • 若是采集的是QImage图像数据
  • 注意:不论是SDK连续采集的图像数据还是Halcon/opencv读取文件的数据都在 Image_process() 函数中进行图像处理。对应不同的图像数据读取方式,选择不同的显示方式。
void MainWindow::Image_process(QImage img)
{if (m_thread->quit){return ;}if(m_image_item){m_scene->removeItem(m_image_item);delete m_image_item;m_image_item = 0;}m_image_item = m_scene->addPixmap(QPixmap::fromImage(img));m_scene->setSceneRect(0, 0, img.width(), img.height());m_scene->setSceneRect(0, 0, 800, 600);g_disply_fps++;}
  • 若为Halcon数据直接显示即可

  • Qt经常出现的问题
    1.这里会显示构建稳文件与项目文件不在同一目录下。

    2.解决方法:根据你下载的Qt版本,将如下文件放置于.pro 文件上一级目录。

Qt5 UI界面设计相关推荐

  1. UI培训教程分享:APP启动页UI界面设计

    本期为大家分享的ui培训教程是关于APP启动页面的UI设计方面,作为一名合格的UI设计师,APP产品的启动页是需要会的,下面就来看看详细的教程吧. UI培训教程分享:APP启动页UI界面设计 启动页面 ...

  2. UI素材模板|App搜索页UI界面设计版式

    无论是在app还是在web端,搜索都是一个发现内容的重要方式.与web端不同,app上的搜 索功能在设计方面有自己独特的展现方式. 下面就看看这些App搜索页UI界面设计吧. 工作搜索App免费UI ...

  3. UI界面设计视觉设计参考模板,解剖分层看如何更好的运用排版法则

    排版在平面设计领域极为重要,它不只在海报.广告中使用,在制作UI的作品集.UI界面设计.网页设计.运营设计也要注重设计排版,下面分享一些版式设计法则,通过这些法则来规范移动UI设计,并提升作品的精品感 ...

  4. App引导页学习进阶临摹模板|UI界面设计步骤

    设计一个成功的App引导页可以说是我们APP界面设计师需要重点用心对待的事情,因为APP引导页的设计取决于用户对这个APP的第一印象,或是大概的了解. 像素精简版 - 免费引导4 UI套件​www.s ...

  5. App ui界面设计模板素材,分分钟激活灵感

    手机界面在人机交互的过程中,是进行信息输入和输出的重要媒介. 任何手机信息交换的大部分过程都是通过手机界面进行的, 不同种类的手机界面也将带给人不同的视觉感受. SooUI(搜优) 是为UI设计师.U ...

  6. android 按钮旋转等待,android高分段进阶攻略(3)旋转等待UI界面设计

    因为最近工作较忙的原因,可能更新较慢,而且内容越来越细,从一个完整的app到一个 简单的功能,甚至到UI设计,今天介绍的就是一个常见的UI设计,先上图: 别看只是个简单的UI,只有几行代码,当时我把这 ...

  7. 游戏UI界面设计视频教程全套

    库(UI插画漫画开发建模美术教程大全) 2014-11-28 16:54:21 1.全面系统(从基础到进阶,涵盖所有细节,特别是没有受过特别专业培训的亲们,更加需要) 2.有序排列(按照教程属性与绘画 ...

  8. 2018年Sketch UI界面设计套件前十了解下!

    Sketch近几年凭着大量的插件和免费教程迅速发展,而Sketch的忠实粉丝们也乐于将他们的免费模型分享出来.这也意味着你会在网上找到更多的免费Sketch素材,从完整的模型到内容详实的UI套件. 为 ...

  9. Android Studio:基本UI界面设计 (详细)

    一. 实验题目 基本UI界面设计 二. 实现内容 实现一个 Android 应用,界面呈现如下效果: 三. 实验过程 (1)标题 首先我们建立一个TextView控件来写标题. 实验对标题的要求如下: ...

最新文章

  1. 服务器怎么设置网站写入权限,如何设置服务器写入权限设置方法
  2. cross-entropy(交叉熵)是什么?用了表征什么东西?
  3. Halcon 标定与准确测量
  4. JS编程建议——2:正确辨析JavaScript句法中的词、句和段
  5. pta输出三角形字符阵列c语言,C语言l|博客园作业11
  6. 利用Sqoop在数据库和Hive、HDFS之间做ETL操作
  7. java 浮点型 除零_Java-非零整数除以10等于0.0浮点?
  8. mac 遇到的奇怪问题?
  9. pythonATM,购物车项目实战3-视图函数
  10. 亚马逊-不一样的电商公司
  11. CF528D. Fuzzy Search [FFT]
  12. 小米4刷魅族系统后无服务器,小米4线刷魅族Flyme OS系统的教程_小米4 Flyme OS刷机包...
  13. 实现virtual box虚拟机窗口全屏显示
  14. gnss_伽利略gnss消息认证过程
  15. 2013.06.23《语法-方式状语》
  16. Didn't find class android.support.v7.widget.RecyclerView 解决办法 ———————————————— 版权声明:本文为CSDN博主「eag
  17. 网络协议分析(3):FTP
  18. 手机几款超级好用的APP你都认识吗
  19. 密码学1: 对称加密体系
  20. 在桌面上显示IP地址等信息

热门文章

  1. springmvc结合base64存取图片到mysql
  2. 量化投资的现状与前景
  3. 1.拜尔阵列—1.1手机摄像模组介绍
  4. Vue+Element项目实战系列-动态面包屑
  5. java 设置字体_java里面怎样设置字体大小?
  6. centos7下使用yum安装ifconfig
  7. NodeJS 与第三方模块 mysql(基本操作)
  8. 谣言!华为官方回应停止社会招聘
  9. qt去掉文件路径中的最后一个路径内容
  10. python读取特殊格式文件