自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (1)
  • 收藏
  • 关注

原创 QT打包软件调用DLL出现Cannot load library XXX.dll:找不到指定的模块之解决方案

QT DLL

2022-07-14 10:30:04 9991 1

原创 QGraphicsScene添加自定义item,成功添加但不显示的一种原因

当用户自定义item时,该自定义item的父类必须为Qwidget或QGraphics相关类。否则会导致场景异常,无法正常显示item

2022-06-08 14:02:03 990

原创 QTableView改变行高的方法

若想改变行高为10,则使用如下代码tableview->verticalHeader()->setMinimumSectionSize(10);for(int i=0;i<model->rowCount();i++){ tableview->verticalHeader()->resizeSection(i,10);}其中,tableview为QTableView对象,model为其QStandardItemModel。...

2022-05-30 15:31:40 4154 2

原创 AGV调度系统开发1(电子地图编辑软件)

前言AGV及其调度系统作为智能制造领域的核心技术之一,具有较强的专业性,本系列将全面的讲解AGV调度系统的功能与实现。该系列中介绍的方法和软件是完全经本人研发的,也一直在完善中,若有志同道合的朋友,可以一起探讨。本文内容本文简单说一下AGV调度系统的重要工具:地图编辑软件。作为AGV调度系统的基础之一,电子地图以抽象与现实有机结合的方式描述了AGV运行的环境地图,使用该地图编辑软件可以绘制电子地图,电子地图绘制完毕之后,可在调度系统中进行仿真,从而验证调度算法和功能等,进而实现多台AGV的统一调度。

2022-02-16 17:01:00 4193 3

原创 QT5.9.0安装64位编译器(win10)踩坑记录+解决办法

这里写自定义目录标题问题描述尝试1:卸载重装VS2015尝试2:改注册表尝试3:卸载重装QT尝试4:不装VS2015,只安装库和build tool尝试5:将QT版本降低到5.1.0成功尝试:将QT版本提高到5.12.0,自带mingw_64bit后记问题描述我有个项目需要在QT中使用64位编译器,我用的QT版本是5.9.0,自带只有一个Mingw32位编译器。所以我一直都是用MSVC2015_64bit编译器来实现64位的编译功能,但是~~就在几天前,当我打开电脑,就显示“Variable QMAKE

2021-08-29 11:25:59 8685 4

原创 QT简单曲线图绘制(基于QChart)

本例指定一系列离散点,可绘制曲线图,并可将图表嵌入widget中(本例嵌入了mainwi)效果如下:本例曲线图绘制使用QT的QChart模块实现(QT5.7及其以上版本才有此功能),自行封装了Chart类,调用如下:.pro工程文件:#-------------------------------------------------## Project created by QtCreator 2020-08-12T20:05:22##--------------------------

2020-08-12 22:02:49 24794 6

原创 自己实现c++ list模板类,亲测可用

双向链表模板类dlist.h#ifndef DLIST_H#define DLIST_H#include <iostream>#include <string>#include <stdexcept>using namespace std;template<typename T> class DList{ struct node{ T data; node* next; node* prev; };

2020-07-19 21:50:54 1635

原创 基于c++11编写的双向链表(实现了构造函数、添加、查找、交换、删除、清空、排序等功能)

基于c++11编写的双向链表实现:dlist.h#ifndef DLIST_H#define DLIST_H#include <iostream>#include <string>#include <stdexcept>using namespace std;typedef int ElemData;struct node{ ElemData data; node* next; node* prev;};class DL

2020-07-19 21:16:27 503

原创 C++普通构造函数、拷贝构造函数(对象不含指针成员)、赋值运算符重载函数 最简单实例

在Student类中演示这三种构造函数#include <QCoreApplication>#include "iostream"using namespace std;class Student{private: string name; int age;public: //缺省构造函数 Student(){ } //有参构造函数 Student(string _name, int _age){ name =

2020-07-02 14:53:24 257

原创 QT ModbusCRC16 校验码计算(非查表法,直接计算)

记录一下QT中如何实现 ModbusCRC16 校验码计算#include <QCoreApplication>#include <QDebug>//CRC16计算函数uint16_t ModbusCRC16(QByteArray senddata){ int len=senddata.size(); uint16_t wcrc=0XFFFF;//预置16位crc寄存器,初值全部为1 uint8_t temp;//定义中间变量 int i=

2020-06-11 14:47:05 5363 3

原创 QT设计模式实例【单例模式】

本文根据一个例子,展示如何在QT中使用单例模式特点:全局内只允许创建一个对象,成员变量和成员函数绝大多数为静态。用途:充当架构内的全局管理器角色,例如Windows的任务管理器就是一个典型的单例模式。单例模式代码://运动控制器 单例模式#define SAFE_DELETE_ELEMENT( ptr ) if(ptr != NULL){delete ptr; ptr = NULL;}class MoveController : public QObject{ Q_OBJECT

2020-05-16 15:54:37 917

原创 QT错误的解决办法error:LNK2019:无法解析的外部符号

之前在QT(c++)中也遇到过这个问题,是因为类的静态成员只是在类中声明,没有在类外定义。问题代码我的类中的静态成员://运动控制器 单例模式class MoveController : public QObject{ Q_OBJECT static QMutex mutex; //静态成员 static QReadWriteLock RWLock_wheel1; //静态成员 static QReadWriteLock RWLock_wheel2; //静态成员

2020-05-16 15:31:11 2238

原创 QT简单入门实例11【QT写简单XML文件】

实现效果:在工程目录下生成一个xml文件XML文件内容:<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!--Scheduling FrameWork V1.0, Wrote By Sun_tian--><Family City="HZ"> <personItem> ...

2020-02-21 22:03:28 517

原创 如何保证QT中类的线程安全?(让多线程不再崩溃)

1 什么是类的线程安全(或线程安全的类)?了解多线程的人大概都知道,类的线程安全比可重入更加严格,它要求在不同线程同时调用类同一实例的成员函数,而不会引发程序的崩溃。2 哪些情况下不用考虑线程安全问题?2.1 在多线程中对bool,int,float,QString等类型的操作,你不用考虑任何安全性问题。因为你无论以什么方式在不同线程中对这些类型进行操作,都像真正的原子性操作一样(其实不是...

2020-02-21 16:00:28 6046 1

原创 (c++)【mutable关键字】

在c++中,如果成员函数被const关键字修饰,那么调用这个成员函数将不会改变对象的任何状态(任何成员变量的值)。但是如果我们需要在const修饰的函数里面修改一些成员变量,那么这个成员变量可以使用mutalbe来修饰。这样的话,这个变量就可以突破const的限制,在被const修饰的函数里面也能被修改。例子如下:#include <QCoreApplication>#incl...

2020-02-21 12:02:21 169

原创 QT简单入门实例10【100行代码实现的的QCamera摄像头应用,可打开多个摄像头,可全屏】

前言:之前写过一篇 QT5基于QCamera实现的各种摄像头(USB摄像头,系统摄像头,网络摄像头)显示,截图,保存功能。有很多写的不清楚的地方,正好趁《QT简单入门实例》这个系列,再梳理一下QCamera的最基本用法。老规矩,先看运行效果:功能:1 可自动检测连接的摄像头,并可在左下角选择。2 可打开摄像头。关闭摄像头。3 可选择本地路径进行截图保存源代码(界面设计通过代码实...

2020-02-18 19:54:51 3181 8

原创 QT简单入门实例9【一个信号对应多个槽,多个信号对应一个槽】

前言:Qt独创的信号槽机制,不仅可以一个信号连接一个槽,而且可以一对多或多对一。这其中存在两个最基本的问题:1.一个信号对应多个槽时,槽函数的执行顺序是怎样的???2.多个信号对应一个槽时,如何在槽函数中判断信号的发出者是谁(来自哪个类的对象)?下面对这两种情况分别进行验证:实例演示1:对一个信号对应多个槽时,槽函数的执行顺序怎样的?mainwindow.h#ifndef MAIN...

2020-02-18 16:26:35 5104 1

原创 QT简单入门实例8【信号槽的新建,连接,触发】

1 UI控件的信号槽(以QPushButton为例)QT的各种UI控件(例如按钮,滑动条,标签等),都有很多信号,这些信号在控件状态变化时(比如鼠标按下的时候)信号会自动触发。在“按钮”控件上鼠标右击可以转到槽,可以看到,QPushButton类总共有12个不同的信号,分别继承自QAbstractButton, QObject, Qwidget。最常用的就是:clicked() —— 鼠标...

2020-02-18 15:08:46 960

原创 QT简单入门实例7【解决界面阻塞问题】

界面卡死的原因:1.密集计算当你想在主线程创建类似 while(1)的这种死循环时,你可能会写下这样的代码:#include "mainwindow.h"#include "ui_mainwindow.h"#include <QDebug>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ...

2020-02-17 16:46:39 6079 1

原创 QT简单入门实例6【QVariant使用,一种实现函数重载的新方法】

概述QVariant可以被当做一个容器,你可以把其他类型的值放进去,然后也可以取出。在你想要一个类型,这个类型可以存储不同类型的值时,可以使用QVariant 。QVariant 可以保存的数据类型包括QString, QImage, QFont, QPixmap, QPoint等QT内置类型,还有C++基本类型,如 int、float等。数据库模块和QSettings模块都严重依赖QVar...

2020-02-17 14:13:08 1033

原创 QT简单入门实例5【QVector与QList容器类】

概述仅在此简单介绍QVector与QList的一些常见函数,有兴趣的可以查下QT帮助文档(F1)。两者都是Qt提供的的泛型容器类,分别对std::vector和std::list进行了改进,以提高运行效率,简化使用。QVector类是一个提供动态数组的模板类,QList类类是一个提供链表的模板类。有兴趣的可以研究一下Qt库中的具体实现,对提高代码水平会有很大提升。使用:QList可以解...

2020-02-17 13:21:24 1129

原创 QT简单入门实例4【QMessageBox确定和取消功能,结合窗体关闭事件】

实现效果:点击窗体关闭按钮后,弹出对话框点击Yes后,关闭事件被响应,应用程序会退出;点击No后,关闭事件被忽略。代码:manwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QMessageBox> //添加头文件#include <Q...

2020-02-17 10:28:53 3445 1

原创 QT简单入门实例3【QMessageBox使用,包含消息框,警告框,错误框。实现一定延时后自行关闭功能】

本文对 QMessageBox::Information, QMessageBox::Warning,QMessageBox::Critical 三种消息框进行演示。并实现两种弹出方式:1. 等待用户点击后关闭2. 延时一段时间后自行关闭效果如下:以下是代码:mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#in...

2020-02-17 10:04:10 2802

原创 QT简单入门实例2【QString使用,与string, char*, int, float互相转化】

QString是QT基于std::string类型自定义的一种新类型,用来实现更方便的字符串操作。以下对QString的常用功能进行展示,并提供与其他类型的转化方法(string, char*, int, float )main.cpp#include <QString>#include <QDebug>using namespace std;#include ...

2020-02-16 17:18:10 503

原创 QT简单入门实例1【qt连接sqlserver】

前言:在软件项目开发中,经常会用到数据库进行数据管理,其中最常用的就是SQL Server。本例对如何使用QT5连接SQL Server数据库进行讲解,并提供详细步骤和源码。环境:QT5.9.0 (MinGW-32bit), SQL Server 2008,本例中的测试所用数据库名称为GL4,如下图1.配置ODBC数据源打开ODBC数据源管理器,位数要和QT编译器保持一致,本例中两...

2020-02-16 15:31:51 3479 1

原创 QT开发 一个超简单的入门例子(详细)

实现功能:可以通过按钮打开本地图片,并显示在主界面上如下:步骤:1.新建项目

2020-02-16 10:37:41 24726 14

原创 Qt5(C++)调用python3脚本(带输入输出参数)

本例中的环境: Qt 5 9.0(编译器为32位mingw或32位msvc均可),python3.5.4 -32bit1 前期准备1.1 准备测试用的python文件(取名不要为test.py即可)def show(): print("hello!")def sum(a,b): return (a+b)def main(): show() print(s...

2020-02-15 16:11:01 7137 12

原创 Qt5.9.0下载与安装(windows版本)

1.下载Qt5.9.0开源版本官网下载选择图中2.3GB的安装包,即可进行下载2.安装双击安装包,弹出qt5.9.0的安装界面点击下一步这里的账户如果没有,可以不填,直接点Next点击下一步选择安装目录,勾选下面的勾选框,点击下一步选择需要安装的组件,如果msvc2015 32-bit, msvc2015 64-bit, Qt Charts, Qt WebEngin...

2020-02-14 18:30:14 14625 5

原创 (Qt+opencv)操作摄像头实现显示、截图、保存功能(双线程、带源码)

一年前有个项目,本打算用Qt+opencv+多线程来操作相机,苦于技术不到家,只好用QCamera来操作摄像头(QCamera提供的相机操作方法很局限,甚至无法直接获取每一帧图像)。一年后的今天,我又想起这回事,专门抽时间把这段代码写了出来,也算有始有终了~环境:win10 + Qt5.9.0(编译器为MSVC2015-32bit) + opencv4.1.1(编译器为MSVC2015-32bi...

2020-02-09 16:37:33 7031 7

原创 (C++) static静态成员变量、static静态成员函数

1.简单介绍c语言中:用于函数内部修饰变量,即函数内的静态变量。这种变量的生存期长于该函数,使得函数具有一定的“状态”。使用静态变量的函数一般是不可重入的,也不是线程安全的,比如strtok(3)。用在文件级别(函数体之外),修饰变量或函数,表示该变量或函数只在本文件可见,其他文件看不到也访问不到该变量或函数。专业的说法叫“具有internal linkage”(简言之:不暴露给别的tran...

2020-02-09 14:00:24 429

原创 (opencv)任意多边形检测

算法介绍: 对图像中的任意多边形进行检测输入: 图像,多边形逼近精度,多边形最小面积输出: 检测出的多边形角点函数声明:vector<vector<Point>> polygonDetect(Mat&,double epsilon,int minAcreage); //多边形检测调用:Mat matin=camera->read(); //视频流...

2020-02-08 12:54:24 4906

原创 (opencv)任意四边形网格划分

1 算法介绍算法功能:用于对任意四边形进行网格化处理输入:四边形的四个角点(类型为cv::Point),网格行数,网格列数输出:网格交叉点点集或网格中心点点集(类型为std::vector< cv::Point > )效果如下:vector gridret=Gridding(TEST_P0,TEST_P1,TEST_P2,TEST_P3,3,5,1);vector gri...

2020-02-06 16:45:47 3596 1

原创 (Qt)Qt5 中对 C++11 一些新特性的封装

Qt5 中对 C++11 一些新特性的封装C++11 是现在的 C++ 标准的名称,C++11 为 C++ 语言带来很多新特性。Qt 4.8 是 Qt 首个在其 API 中开始使用一些新的 C++11 特性的版本,在 Qt5 中,提供更多 C++11 的特性支持,接下来我将进行详细的说明。slots (槽) 的 Lambda 表达式Lambda 表达式 是 C++11 中的一个新语法,允许...

2020-01-23 11:27:13 950

原创 Mat格式转QImage格式,对QImage对象操作时崩溃(QImge::scaled或其他操作)

最近编写QT+opencv视觉计算框架时,遇到了崩溃问题,已经解决,今天记录一下。环境:QT5.9.0(MSVC2015 32bit编译器)+opencv4.1.1(MSVC2015 32bit自行编译版)问题描述:重写QThread的run函数,开启了一个子线程进行摄像头图像采集,然后通过信号槽将QImage对象发送到主界面进行显示,结果在主界面槽中对QImage对象进行缩放的时候,程序异常...

2019-11-27 15:42:07 2804 7

原创 基于QAction和事件过滤器的软件主界面设计

QT;事件过滤器;主界面;QAction;工具栏

2019-11-04 15:42:57 469

原创 QT之灵活的消息框(可在任意类中使用)

我们知道,QT中的QMainWindow类或QDialog类等可以使用消息框弹出用户提示或警告信息。但在一些自己定义的类中,QMessagBox类是无法使用的,针对这个问题,可以借用QT的信号槽机制设计一个弹窗机制。效果:可以在任意类中使用emit进行自定义弹窗(弹窗一直停留,或在xxms后自动关闭)涉及知识:信号槽的创建,绑定,发出;自定义弹窗类别,文本内容,停留时长;话不多说,直接上代码...

2019-10-26 14:42:27 1674

原创 QT5基于QCamera实现的各种摄像头(USB摄像头,系统摄像头,网络摄像头)显示,截图,保存功能

最近两天苦恼于QT界面中USB摄像头的显示,还好今天成功解决,给大家分享一下QT界面如下:项目结构如下(本项目命名为QC_test):话不多说,工程中四个文件的源码如下:1.QC_test.pro:QT += core guiQT +=multimediaQT +=multimediawidgetsgreaterThan(QT_MAJOR_V...

2019-03-01 17:04:48 23355 19

原创 MCGS组态屏CRC16(Modbus)校验计算脚本

MCGS组态屏CRC16(Modbus)校验计算脚本说明:该脚本可对任意字节长度的字符型变量进行CRC校验码计算,首先在实时数据库中新建以下变量:inputString——字符型stringLength——数值型mid_n——数值型CRCFull——数值型CRCLSB——数值型i——数值型CRC1——字符型CRC0——字符型CRC码——字符型然后编写脚本代码:stringL...

2019-02-02 15:25:56 3221 3

QT5软件主界面(带工具栏、可全屏、事件过滤器)

其中resoures文件夹为用到的图标,请拷贝到编译后的工程目录下。

2019-11-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除