QT模块
AI炮灰
这个作者很懒,什么都没留下…
展开
-
qt实现加载图片画圆和画矩形
DrawQWidget.h#ifndef DRAWQWIDGET_H#define DRAWQWIDGET_H#include <QWidget>#include <QKeyEvent>#include <qpoint.h>#include <qpen.h>/* * */typedef enum draw_shap_e{ DRAW_RECT, //画矩形 DRAW_ELLIPSE, //画椭圆 ...原创 2021-08-17 12:55:45 · 615 阅读 · 0 评论 -
GraphicsView实现添加背景、添加矩形、放缩、移动
graphicsrectitem.h#ifndef GRAPHICSRECTITEM_H#define GRAPHICSRECTITEM_H#include <QGraphicsItem>#include "sizehandlerect.h"class GraphicsRectItem : public QGraphicsItem{public: GraphicsRectItem(const QRect & rect ,QGraphicsItem * ...原创 2021-08-17 12:50:30 · 1570 阅读 · 3 评论 -
Qt Creator4.15.2使用opencv需要在链接中加入的东西
在创建项目的.pro文件中加入:INCLUDEPATH += D:/opencv/opencv/build/includeCONFIG (debug, debug|release) { LIBS += -LD:/opencv/opencv/build/x64/vc14/lib -lopencv_world452d}else { LIBS += -LD:/opencv/opencv/build/x64/vc14/lib -lopencv_world452}就可以使用open原创 2021-08-17 12:38:32 · 116 阅读 · 0 评论 -
Qt图层结构——实现ROI选取、选框放缩移动、背景图像移动放缩
文件结构:头文件boardlayer.h#ifndef BOARDLAYER_H#define BOARDLAYER_H#include "qk2dview.h"#include <QImage>class BoardLayer : public Qk2dViewLayer{public: BoardLayer(); const QImage& image() const { return m_image; } QTransf.原创 2021-08-17 12:30:14 · 2657 阅读 · 8 评论 -
C++OpenCV系统学习(8)——图像边缘填充、边缘提取、边缘检测
1.图像边缘填充1.1卷积边界问题图像卷积的时候边界像素不被卷积操作,原因在于边界像素没有完全跟kernel重叠,只有当3X3的滤波时候有一个像素的边缘没有被处理,5x5滤波的时候有两个像素边缘没有处理。1.2.处理边缘在卷积开始之前增加边缘像素,填充的像素值为0或者RGB黑色,比如3x3在四周各填充1各像素的边缘,这样就确保图像的边缘被处理,在卷积处理hi后再去掉这些边缘,openCV中默认的处理方式就是:BORDER_DEFAULT,此外还有常用BOEDER_CONSTANT-填充边原创 2021-08-16 22:08:09 · 4569 阅读 · 0 评论 -
Qt开发基础(12)——绘图事件
目录1.绘图事件的基本操作2.绘图事件的高级设置3.利用画家画资源图片4.绘图设备1.绘图事件的基本操作#include "widget.h"#include "ui_widget.h"#include<QPainter>Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget){ ui->setupUi(this);}void Wid..原创 2021-08-16 17:27:55 · 1079 阅读 · 0 评论 -
Qt开发基础(11)——event事件分发器和过滤器
一、事件分发器可以看出,系统拿到需要之后并不是直接分发给事件做处理的,而是需要经过事件过滤和事件分发操作。事件分发器是bool类型,如果返回的是true代表用户要处理这个事件,不向下分发。现在我们需要拦截鼠标按下的操作,如下:在mylabel.cpp如下所示:#include "mylabel.h"#include<QDebug>#include<QMouseEvent>mylabel::mylabel(QWidget *parent) : QLa.原创 2021-08-16 11:15:26 · 719 阅读 · 0 评论 -
Qt开发基础(10)——定时器
有时候我们在设计的时候我们会用到定时器,让他每间隔一段时间就增加1.如下:我们在上个博客的基础上创建一个label_2实现定时器的功能。要实现他每间隔1s就会加1的操作。我们在widget.cpp文件如下所示:#include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget){ ui->s.原创 2021-08-16 09:12:05 · 1002 阅读 · 0 评论 -
Qt开发基础(9)——鼠标事件
只要鼠标进入就再Qlabel中显示鼠标进入了。我们可以自定义类为mylabel,父类为QWidget当鼠标进入的时候再Qlabel中显示鼠标进行了。再mylabel文件编写如下:mylabel头文件:#ifndef MYLABEL_H#define MYLABEL_H#include <QLabel>class mylabel : public QLabel{ Q_OBJECTpublic: explicit mylabel(QWidget .原创 2021-08-14 17:06:12 · 406 阅读 · 0 评论 -
Qt开发基础(8)——自定义封装控件
创建一个Widget之后,再进行新建如下设计师界面:创建好了就是这样多了一个smallwidget.ui假如我们需要将Spin Box和Horizontal Slider封装在一起我们可以看到封装的小控件是一个QWidget类型,所以我们在主窗口也应该加入一个QWidget类型的窗口。(类型必须一致)然后打开主窗口的Qwidget选择“提升为”,提升的类名称为SmallWidget然后再点击添加,再点击“提升”发现主窗口的类名变为Sma...原创 2021-08-14 15:33:05 · 455 阅读 · 0 评论 -
Mat对象转化为QImage对象输出的时候,出现图像倾斜解决方式:
我们一般会吧Mat对象的颜色bgr直接转为rgb这样直接输出会出现问题:一般我们都会这么做: //显示 cvtColor(dst,m_dstImage,COLOR_BGR2RGB); QImage disImage = QImage(m_dstImage.data, m_dstImage.cols,m_dstImage.rows,QImage::Format_RGB888); ui->process_img_原创 2021-08-11 14:37:06 · 520 阅读 · 1 评论 -
QT和C++实现图像处理系统UI设计(QT实战篇)
看了两天qt心血来潮,搞一个图像管理系统:效果如下所示:整体界面:第一页主要做图像的基本处理第二页主要做图像的像素操作:设计了一个联动的滑动模块工具栏:文件主要有导入图像和保存图像缺陷检测模块:图像处理模块:图像识别模块目标定位模块给大家展示一下部分效果:就展示这么多了,写的不好请大家多多指教...原创 2021-08-11 13:32:02 · 3072 阅读 · 9 评论 -
Qt开发基础(7)——QImage与Mat之间的相互转换
Mat转QImageMat mat=imread("c:/dev/test.jpg");cvtColor(mat, mat, CV_BGR2RGB);QImage image(mat.data, mat.cols, mat.rows, mat.step, QImage::Format_RGB888);Qt与OpenCv之间传输数据时,QImage::Format_RGB888是最兼容的模式.OpenCv 加载BGR格式,而不是RGB格式,因此需要首先转载 2021-08-09 20:18:31 · 3805 阅读 · 0 评论 -
Qt开发基础(6)——对话框
目录1.模态对话框和非模态对话框区别2.模态对话框3.非模态对话窗4.关于对话框5.问题对话框6.文件对话框1.模态对话框和非模态对话框区别模态对话框:是指在操作当前对话框的时候,后面的对话框不能操作 非模态对话框:是指在操作当前对话框的时候,后面的对话框也可以操作如果A在操作,B不能操作就是非模态对话框,反之就是模态对话框2.模态对话框再mainwindow.cpp中:#include "mainwindow.h"#include&l...原创 2021-08-06 15:07:55 · 597 阅读 · 0 评论 -
Qt开发基础(5)——创建QMainWindow项目
1.创建文件2.功能模块菜单栏 工具栏 核心控件 浮动窗口3.功能实现3.1菜单栏3.1.1mainwindow.cpp#include "mainwindow.h"#include<QMenuBar>#include<QAction>#include<QDebug>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ //菜单栏 ..原创 2021-08-06 12:45:40 · 957 阅读 · 1 评论 -
Qt开发基础(4)——坐标系统及内存回收机制
1.坐标系统在主文件中mywidget.cpp中如下:#include "mywidget.h"#include<QPushButton>MyWidget::MyWidget(QWidget *parent) : QWidget(parent){ /*对于父窗口(主窗口),坐标系统相对于屏幕 * 原点:相对于屏幕左上角 * x:往右移动 * y:网下移动 */ move(100,100);//移动窗口 /*对于原创 2021-08-06 10:14:27 · 115 阅读 · 0 评论 -
Qt开发基础(3)——Lambda表达式应用
Lambda表达式应用可以不需要指定信号和槽函数,很方便:Lambda表达式:匿名对象函数 //C++11增加的新特性。 //如果需要Qt一起使用需要在项目文件.pro文件添加CONFIG += C++11 //qt配合信号一起使用非常的方便注意:如果信号有参数,在()里面要加上参数mainwidget.h#ifndef MAINWIDGET_H#define MAINWIDGET_H#include <QWidget>#include<QPushBut原创 2021-08-06 09:33:31 · 271 阅读 · 0 评论 -
Qt5解决中文乱码问题
代码为:#include "helloqt.h"#include <QtWidgets/QApplication>#include <qlabel.h> int main(int argc, char *argv[]){ QApplication a(argc, argv); HelloQt w; w.setWindowTitle("学生事务管理系统"); w.resize(300, 140); QLabel label("转载 2021-08-06 08:55:03 · 269 阅读 · 0 评论 -
Qt开发基础(2)——自定义槽函数实现两个窗口的相互切换
1.建第二个窗口的方法选中项目名SignalAndSlot--->右击“添加新文件”: class name 我填写的是SubWidget ,然后base class基类选择QWidget我们可以发现多了两个文件。2.实现点击按钮两个窗口相互切换在subwidget.h中添加一个按钮属性#ifndef S...原创 2021-08-05 08:16:17 · 1292 阅读 · 0 评论 -
Qt开发基础(1)——自定义一个小案例(信号和槽)
目录1.文件格式2.案例2.1头文件mainwidget.h2.2源文件mainwidget.cpp2.3main.cpp2.4.结果3.自定义槽函数3.1案例1.文件格式2.案例2.1头文件mainwidget.h#ifndef MAINWIDGET_H#define MAINWIDGET_H#include <QWidget>#include<QPushButton>class MainWidget : pu.原创 2021-08-04 16:41:46 · 230 阅读 · 0 评论