QT从零入门教程
文章平均质量分 55
QT从零入门教程,小白入手,需要C++基础
笔尖bj
互联网搬砖,闲暇较少~
一知半解,学习分享,路漫漫其修远兮
展开
-
【QT】QT从零入门教程(一):图像处理自编软件
自说自话 寒假有了闲暇时间,于是决定做一个实际点的项目。在此之前,一直想做一款软件,把自己所学过的知识融汇进去,以软件界面的形式呈现出来。此前接触过OpenCV,学C++也有一段时间了,正好想从零入门学QT,于是思路打开,就做一个图像处理方向的软件。 这次QT自学,一改以往先看书看视频的习惯,在构思了软件的大致界面和大体功能后,直接上手。不得不说,QT比MFC简洁方便很多,入手也比较容原创 2018-02-06 13:35:19 · 22566 阅读 · 21 评论 -
【QT】QT从零入门教程(二):开始入门
配置 第一个教程简单介绍了图像处理自编软件的基本界面和功能,本节开始讲解如何制作这个软件。首先是配置环境,博主用的是VS2017+OpenCV3.30+QT5.9.2,其他版本也可以实现,不过要注意链接依赖项的区别。网上的配置教程数不胜数,在此不赘述,QT配置可以参考VS2017专业版使用最新版Qt5.9.2教程,OpenCV配置用CMake完成。新建项目 文件——新建——原创 2018-02-07 13:55:03 · 45386 阅读 · 15 评论 -
【QT】QT从零入门教程(四):菜单栏、工具栏、状态栏
菜单栏、工具栏、任务栏是软件中常见的组件,本节将会讲解如何创建菜单栏并生成一级菜单、二级菜单,如何在工具栏中添加图标和控件,如何在任务栏中显示文本。 标题及图标// 标题大小setWindowTitle("图像处理自编软件 by 笔尖");// 软件图标setWindowIcon(QIcon("../Image/icon/ImageProcessing.png"...原创 2018-02-26 17:41:49 · 12046 阅读 · 1 评论 -
【QT】QT从零入门教程(三):信号与槽
信号与槽 信号和槽是QT中最基本的概念,也是QT中的核心机制。信号和槽是QT自行定义的一种通信机制,独立于标准的C/C++语言,因此要正确的处理信号和槽,必须借助moc(Meta Object Compiler)这一QT工具,该工具是个C++预处理程式,它为高层次的事件处理自动生成所需要的附加代码。 信号与槽可以实现多信号与单个槽的连接,也可以实现单信号与多个槽的连接,甚至能实现信号间原创 2018-02-07 16:19:20 · 10600 阅读 · 5 评论 -
【QT】QT从零入门教程(五):图像文件操作 [新建打开保存]
前文已经讲解了菜单栏、工具栏、任务栏的实现方法,下面我们对程序进行完善。实现功能为:为软件添加“文件”菜单,并在下拉列表上添加”新建”、 ”打开”、 ”保存”、 ”另存为”、 ”关闭”,并在工具栏加上“新建”、“打开”、“保存”图标。代码// 头文件#pragma once#include <QtWidgets/QMainWindow>#include <...原创 2018-02-26 17:59:21 · 7807 阅读 · 8 评论 -
【QT】QT从零入门教程(六):QDockWidget停靠窗口
QDockWidget 上节我们引出了QDockWidget的概念,这节进行讲解并加以引用。 常用函数: 1、addDockWidget:添加停靠控件,用于指定或更改停靠控件的位置以及方向。void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget * dockwidget)void QMain...原创 2018-02-26 18:30:43 · 11020 阅读 · 4 评论 -
【QT】QT从零入门教程(七):图像适应窗口
在第5节里,我们讲解了初始化图像框QLabel的方法,用于显示图像。在第6节里,运用QDockWidget实现了基本窗口布局。在显示图像时,如果打开比QLabel大的图像,会自动出现滚动条。这样能保证图像完整地显示在窗口中,通过滚动条可以查看整张图像。 同时也带来了问题,因为现在手机相机的像素都很高,随随便便打开一张图像,都会超出软件的窗口大小,显示部分可能只是冰山一角,对图像进行查看或...原创 2018-02-26 18:50:20 · 4727 阅读 · 5 评论 -
【QT】QT从零入门教程(八):QT常用控件 [QLabel、QPushButton、QLineEdit、QTextEdit]
本节介绍一些常用的控件,是在“图像处理自编软件”中用到的几种,包括QLabel、QPushButton、QLineEdit、QTextEdit、QSlider、QSpinBox、 QRadioButton、QComboBox,下面逐一进行介绍QLabel、QPushButton、QLineEdit、QTextEdit,其余见下文。// 接上文,在DockWidget停靠窗口上添加控件,...原创 2018-02-27 17:19:23 · 6304 阅读 · 0 评论 -
【QT】QT从零入门教程(九):QT常用控件 [QSlider、QSpinBox、QComboBox、QRadioButton]
QSlider 滑动条与QSpinBox微调框(这里只贴出控件的基本用法,需要时再查阅资料。)QSlider *slider = new QSlider(Qt::Horizontal); // 创建水平滑动条slider->setRange(0, 100); // 设置范围slider->setValue(1); // 设置初始值QS...原创 2018-02-27 17:28:52 · 3368 阅读 · 0 评论 -
【QT】QT从零入门教程(十):QT布局管理QLayout
介绍完常用控件之后,我们发现,之前控件的大小位置都是通过resize()、move()来设置的,很不方便,当你修改某个控件的位置时,其他控件也需要进行调整,容易出现牵一发而动全身的情况。 QT提供了类QLayout进行布局管理,能很好解决这一情况。常用的布局管理有QVBoxLayout、QHBoxLayout、QFormLayout、QGridLayout。通过布局嵌套基本可以实现理想的...原创 2018-02-27 17:34:48 · 12098 阅读 · 0 评论 -
【QT】QT从零入门教程(十一):QT自定义窗口
首先是借鉴了网上的博客,实现无边框,自由拖动的自定义窗口效果。#ifndef CUSTOMWINDOW_H #define CUSTOMWINDOW_H #include <QtGui>#include <QtWidgets>#include <QMenuBar>#include <QMainWindow>class ...原创 2018-02-27 17:43:57 · 2963 阅读 · 0 评论 -
【QT】QT从零入门教程(十二):实现工具箱QButtonGroup
工具箱有两种实现方式,一是运用工具栏QToolBar,二是运用QButtonGroup,在按钮组内创建多个QPushButton,每个按钮对应不同的槽函数。 本节的“工具箱”窗口是QDockWidget类型,通过在停靠窗口上添加控件来实现工具箱功能。 代码在头文件中添加private: int drawType; ...原创 2018-02-27 20:59:53 · 4636 阅读 · 0 评论 -
【QT】QT从零入门教程(十三):QT画笔工具QPainter (双缓冲绘图)
QPainter 用于执行绘图操作,其提供的 API 在 GUI 或 QImage、QOpenGLPaintDevice、QWidget 和QPaintDevice 显示图形(线、形状、渐变等)、文本和图像。 绘图系统由 QPainter 完成具体的绘制操作,QPainter 类提供了大量高度优化的函数来完成 GUI 编程所需要的大部分绘制工作。它可以绘制一切想要的图形,从最简单的一条直...原创 2018-02-28 12:48:13 · 6923 阅读 · 0 评论 -
【QT】QT从零入门教程(十四):标准颜色对话框类QColorDialog
Qt中提供了一些标准的对话框,用于实现一些常用的预定义功能,本节要讲的是颜色对话框QColorDialog,它是在标准文件对话框的基础之上添加一些布局实现的。测试程序:QColor color = QColorDialog::getColor(Qt::white, this); // 设定对话框打开时默认选择的颜色QString msg = QString("r: %1,...原创 2018-02-28 17:33:59 · 2377 阅读 · 0 评论 -
【QT】QT从零入门教程(十五):QImage和Mat的转换
QT处理图像用的是QImage类,而OpenCV处理图像则是使用cv::Mat类,如果要在QT中运用OpenCV,那就需要进行QImage和Mat的相互转换。// cv::Mat转换成QImageQImage cvMat2QImage(const Mat& mat) { if (mat.type() == CV_8UC1) ...原创 2018-02-28 17:48:42 · 5363 阅读 · 1 评论 -
【QT】QT从零入门教程(十六):QSS样式表
实现一个软件的基本界面和功能后,接下来要做的就是美化界面,这就用到了QSS样式表。 QSS包含了一个样式规则序列,一个样式规则由一个选择器和声明组成,选择器指定哪些部件由规则影响,声明指定哪些属性应该在部件上进行设置。例如: QPushButton { color: red } 其中QPushButton是选择器,{ color: red }是声明,该规则指定QPushB...原创 2018-02-28 19:12:22 · 7947 阅读 · 3 评论 -
【QT】QT从零入门教程(十七):QT+OpenCV+VS 打包exe
1、在Debug模式下运行程序,生成exe。2、在桌面上新建文件夹,名字最好为英文或数字,将项目生成的exe及所需资源文件夹(如Image文件夹)拷贝到文件夹中,在文件夹中新建一个txt,F:\QT\5.9.2\msvc2017_64\bin\为qt安装的相关目录。***.exe是生成的exe的文件名称,将文件后缀改为.bat,运行。F:\QT\5.9.2\msvc2017_64\bi...原创 2018-03-01 13:40:46 · 8354 阅读 · 21 评论