自说自话

  寒假有了闲暇时间,于是决定做一个实际点的项目。在此之前,一直想做一款软件,把自己所学过的知识融汇进去,以软件界面的形式呈现出来。此前接触过OpenCV,学C++也有一段时间了,正好想从零入门学QT,于是思路打开,就做一个图像处理方向的软件。

  这次QT自学,一改以往先看书看视频的习惯,在构思了软件的大致界面和大体功能后,直接上手。不得不说,QT比MFC简洁方便很多,入手也比较容易。遇到问题就查找资料查阅博客,中途当然也遇到了不少坎,要么攻克要么绕路解决,总体也还算是顺利。

  历时两个多星期(20天),总算是完成了,虽然有些预计的功能比如多线程没实现,不过还是结项了。写博客教程,一是方便自己日后翻阅,二来也是总结分享自己的QT自学经验,便于大家学习。由于从零入门,自学时间短,有些知识点可能总结不到位或者有误,还望诸位热心提出。

  本教程不定期更新,也不知何时结束,尽量从最开始简单的按钮写到最后的打包方法,还原编写软件时的思路。这个软件也比较简单,只是把一些经验分享出来,适合初学者。

  附上软件下载链接: https://github.com/HuangBingjian/ImageProcessing/


界面



工具栏、菜单栏

  文件工具栏中是常见的新建(new)、打开(open)、保存(save)、撤销(undo)、重做(redo),实现方法将会在后续教程中给出。

  绘图工具栏可以设置画笔的线宽及颜色,其中设置画笔颜色用的是QT自带的QColorDialog。

  当载入的图像过大时,图像窗口虽然会出现滚动条,但是不方便查看,所以设置了“铺满窗口”和“自适应窗口”两个按钮,会根据窗口大小自动调节图像的显示效果。

  一键换肤是切换QSS,默认的白色样式是setStyleSheet(0)即不加QSS,而黑色皮肤是采用Github中JetBrains Dracula设计的QSS样式表,自己有稍作修改。

  文件菜单是新建、打开、保存、另存为、关闭,有相应的快捷按键。

  编辑菜单有撤销、重做、全屏显示和退出全屏。全屏显示是指没有标题栏即“图像处理自编软件 by 笔尖”那一栏,当切换为黑色皮肤时全屏显示更协调。

  视图菜单监控各个窗口的状态——显示或隐藏。通过点击菜单可以切换窗口状态, 免得关闭窗口后不知从何找起。至于图像窗口,由于该软件只能处理单张图像,不支持同时对多张图像进行处理,所以图像窗口一直保持显示状态,如果隐藏那还怎么实时查看处理结果…

  帮助窗口的话,就是软件的基本信息以及基本设置。



功能窗口



其他窗口

  工具箱里是简单的图形绘制工具,有钢笔、线条、圆形、椭圆、三角形、菱形、矩形、正方形、六边形。点击即可绘制,支持切换,再次点击同个按钮可以退出绘制模式。

  输出窗口显示的是图像的操作记录,便于了解之前有哪些操作以及目前处于什么状态。

  属性窗口是对输入图像的路径、长度、宽度、深度、是否灰度进行检测辨别,直观显示图像的基本信息。

【QT】QT从零入门教程(一):图像处理自编软件相关推荐

  1. 【QT】QT从零入门教程(十一):QT自定义窗口

      首先是借鉴了网上的博客,实现无边框,自由拖动的自定义窗口效果. #ifndef CUSTOMWINDOW_H #define CUSTOMWINDOW_H #include <QtGui&g ...

  2. 【QT】QT从零入门教程(十):QT布局管理QLayout

      介绍完常用控件之后,我们发现,之前控件的大小位置都是通过resize().move()来设置的,很不方便,当你修改某个控件的位置时,其他控件也需要进行调整,容易出现牵一发而动全身的情况.   QT ...

  3. 【QT】QT从零入门教程(八):QT常用控件 [QLabel、QPushButton、QLineEdit、QTextEdit]

      本节介绍一些常用的控件,是在"图像处理自编软件"中用到的几种,包括QLabel.QPushButton.QLineEdit.QTextEdit.QSlider.QSpinBox ...

  4. 【QT】QT从零入门教程(四):菜单栏、工具栏、状态栏

      菜单栏.工具栏.任务栏是软件中常见的组件,本节将会讲解如何创建菜单栏并生成一级菜单.二级菜单,如何在工具栏中添加图标和控件,如何在任务栏中显示文本. 标题及图标 // 标题大小 setWindow ...

  5. 【QT】QT从零入门教程(六):QDockWidget停靠窗口

    QDockWidget   上节我们引出了QDockWidget的概念,这节进行讲解并加以引用.   常用函数:   1.addDockWidget:添加停靠控件,用于指定或更改停靠控件的位置以及方向 ...

  6. 【QT】QT从零入门教程(七):图像适应窗口

      在第5节里,我们讲解了初始化图像框QLabel的方法,用于显示图像.在第6节里,运用QDockWidget实现了基本窗口布局.在显示图像时,如果打开比QLabel大的图像,会自动出现滚动条.这样能 ...

  7. 【QT】QT从零入门教程(十七):QT+OpenCV+VS 打包exe

    1.在Debug模式下运行程序,生成exe. 2.在桌面上新建文件夹,名字最好为英文或数字,将项目生成的exe及所需资源文件夹(如Image文件夹)拷贝到文件夹中,在文件夹中新建一个txt,F:\QT ...

  8. 【QT】QT从零入门教程(十六):QSS样式表

      实现一个软件的基本界面和功能后,接下来要做的就是美化界面,这就用到了QSS样式表.   QSS包含了一个样式规则序列,一个样式规则由一个选择器和声明组成,选择器指定哪些部件由规则影响,声明指定哪些 ...

  9. 【QT】QT从零入门教程(十五):QImage和Mat的转换

      QT处理图像用的是QImage类,而OpenCV处理图像则是使用cv::Mat类,如果要在QT中运用OpenCV,那就需要进行QImage和Mat的相互转换. // cv::Mat转换成QImag ...

最新文章

  1. 如何避免JSP文件中的Java代码?
  2. newLisp使用初步
  3. World Final 2012
  4. 【Python】Pandas基础:结构化数据处理
  5. 阿里云加入 OCI,共建容器开放标准
  6. mysql连接数紧张_Mysql 查看连接数,状态,最大并发数
  7. firefox 接受post 不完整_HTTP中GET与POST的区别,99 %的人都理解错了
  8. python之美_Python之美[从菜鸟到高手]--生成器之全景分析
  9. Android SDK Manager 更新慢解决办法
  10. canvas 在线画图
  11. linux7yum安装mysql,CentOS7 使用yum安装mysql
  12. putty如何登陆oracle,利用putty的SSH tunnel连接Oracle
  13. slam无人车清除地图残影
  14. Linux sogou input method
  15. 永洪BI-相关小知识点
  16. 【转】华为手机logcat不出日志解决方案
  17. [每日100问][2011-10-06]iphone开发笔记,今天你肿了么
  18. uni-app - Refused to display ‘xxx‘ in a frame because an ancestor violates the following Content Sec
  19. 怎么在添加为知笔记编辑器/为知笔记怎么用其他编辑器编辑/为知笔记怎么才能用Word/notepad++编辑
  20. 【C语言循环结构题目】在屏幕上打印n行*号倒三角形(此处n为6)

热门文章

  1. php 如何打乱数组顺序,【PHP打乱数组顺序的方法有哪些,这样的程序你真的会写吗】- 环球网校...
  2. pytorch学习笔记(五):线性回归的简洁实现
  3. KaimingInit论文的译读笔记
  4. Python——三元表达式
  5. windows 终端查看python位置
  6. day、11闭包函数和装饰器
  7. Python 科学计算库 Numpy 准备放弃 Python 2 了
  8. synchronized基础
  9. 全局变量的使用【C++/Qt】
  10. 独立使用zuul网关分发不同服务的请求、权限控制,非SpringCloud