前言勇哥对于C语言,C++早些年有一些接触,这个系列贴子就记载一下C++应用框架的学习经验。
在写程序时,UI、基础类库、应用程序框架对于vc来讲,只能依靠MFC和QT了。
勇哥对MFC有很强的抵触,它长得丑,很多地方反人类,唯一的好处是VC原生自带的。
所以还是先研究一下QT,再研究MFC吧,否则会带了很大的挫折感。
另外,采用vc++进行.net开发,即托管方式开发,可以使用WPF做界面,在有些公司也是被采用的方案,
这方面勇哥是全盲,也要抓紧研究一下。
所有将要做的这一切,都是想为OpenCV服务!
加油。。。
第一篇笔记开始研究QT,包含下面的内容:
1、创建第一个Qt程序
2、熟悉按钮控件常用API
3、对象树的基本概念
4、Qt中的坐标系统
5、信号和槽的基本使用以及拓展
6、opencv读取显示图片
QT的模块,我们后续先研究点有用的,包括:Qt Widgets, Qt Core, Qt GUI, Qt Network。
下图是QTv5版的模块。如果是v5版以下,Qt Widgets是被包含在GUI中的。
先把练习程序放上来。
它的工程是这样的:
很简单,图片是opencv读入,并用QT控件显示的。
几个按钮是代码创建的,重点是熟悉信号槽的用法,它的作用就是用来完成类似C#中的按钮的事件。
先提供源代码。
MyButton.h#pragma once
#include
#include
class MyButton : public QPushButton
{
Q_OBJECT
public:
MyButton(QWidget *parent);
~MyButton();
};
QtForOpencv.h#pragma once
#pragma execution_character_set("utf-8")
#include
#include "ui_QtForOpencv.h"
#include
#include "student.h"
#include "teacher.h"
class QtForOpencv : public QWidget
{
Q_OBJECT
public:
QtForOpencv(QWidget *parent = Q_NULLPTR);
~QtForOpencv();
voi