一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
06 2021 档案
Qt 绘制贝塞尔曲线例程
摘要:main.cpp 1 #include <QApplication> 2 #include "mywidget.h" 3 4 int main(int argc, char *argv[]) 5 { 6 QApplication a(argc, argv); 7 8 MyWidget w; 9 w. 阅读全文
posted @ 2021-06-30 15:34 一杯清酒邀明月 阅读(1019) 评论(0) 推荐(0) 编辑
Qt 报错:error: C2143: 语法错误: 缺少“;”(在“*”的前面)
摘要:这是因为,如有2个头文件a.h和 b.h,A.h有#include “B.h”,而b.h也有#include"A.h",同时B.h头文件中有a类的对象(即有A a)等,这样造成 A.h与B.h之间无限循环引用,即会导致以上的错误。解决方法是在B.h头文件的类前声明一下A类即可(即class A;)。 阅读全文
posted @ 2021-06-29 10:49 一杯清酒邀明月 阅读(1398) 评论(1) 推荐(2) 编辑
Qt QPropertyAnimation 几行代码快速制作流畅的动画效果
摘要:简介 QPropertyAnimation Class 是一个控制动画效果的类,诞生自 Qt 4.6 版本。 该类继承自 QVarianAnimation,并支持其它基类相同的动画类,例如:QAnimationGroup 动画组类,该类仅支持继承自 QObject 类的窗口部件。 以例代劳 用例子来 阅读全文
posted @ 2021-06-28 14:59 一杯清酒邀明月 阅读(920) 评论(0) 推荐(0) 编辑
Qt QFontMetrics获取字体宽度小示例
摘要:例子如图,关键部分就是点击按钮的槽里的那三句话: 以下还有几个要了解的知识: fontMetrics().width(QString s): 获取字符串s的总像素宽度。 fontMetrics().height(): 获取字体的高度。 fontMetrics().lineSpacing(): 获取字 阅读全文
posted @ 2021-06-28 14:13 一杯清酒邀明月 阅读(685) 评论(0) 推荐(0) 编辑
Qt GraphicsView框架
摘要:一、GraphicsView框架简介 QT4.2开始引入了Graphics View框架用来取代QT3中的Canvas模块,并作出了改进,Graphics View框架实现了模型-视图结构的图形管理,能对大量图元进行管理,支持碰撞检测,坐标变换和图元组等多种方便的功能。 GraphicsView框架 阅读全文
posted @ 2021-06-25 16:10 一杯清酒邀明月 阅读(2316) 评论(0) 推荐(2) 编辑
Qt 获取QGraphicsItem在屏幕上的位置,在QGraphicsItem中获取全局位置,转换为screenPos
摘要:首先了解几个QGraphicsItem的函数 1 QGraphicsScene* QGraphicsItem::scene() 返回item所在的场景Scene 2 QPointF QGraphicsItem::scenePos() 返回item在场景中的位置 QGraphicsScene的函数 Q 阅读全文
posted @ 2021-06-25 15:51 一杯清酒邀明月 阅读(2380) 评论(0) 推荐(0) 编辑
Qt easingCurve:QEasingCurve官方解析及实例
摘要:官方解析easingCurve:QEasingCurve 这个属性保留了动画的缓和曲线。他定义了缓和取消,默认情况下,使用线性缓和曲线,产生线性插入值。下面举出其他曲线的例子:QEasingCurve::InCirc 这个属性提供了圆形入口曲线。QEasingCurve::InOutElastic这 阅读全文
posted @ 2021-06-25 15:26 一杯清酒邀明月 阅读(652) 评论(0) 推荐(0) 编辑
Qt error: C1075: 左侧的 大括号“{” 与文件结尾不匹配
摘要:出现这个问题很奇怪,不存在大括号不匹配的情况,编译出现这个错误时,可以看到在控制台同时输出这样一句提示“请转unicode编码......” 所以我给出的解决方法是:将代码复制到txt,将txt保存为unicode编码,在新建文件,然后将这段代码拷贝进去,编译OK了 阅读全文
posted @ 2021-06-25 12:00 一杯清酒邀明月 阅读(1510) 评论(0) 推荐(0) 编辑
Qt QParallelAnimationGroup 并行动画组
摘要:简述 QParallelAnimationGroup类提供动画的并行组。 QParallelAnimationGroup - 一个动画容器,当它启动的时候它里面的所有动画也启动,即:并行运行所有动画,当持续时间最长的动画完成时动画组也随之完成。 详细描述 QParallelAnimationGrou 阅读全文
posted @ 2021-06-24 13:34 一杯清酒邀明月 阅读(597) 评论(0) 推荐(0) 编辑
Qt closeEvent的使用
摘要:在平常使用软件的时候,常常能遇到这样的情况:点击关闭选项后,程序没有马上退出,而是跳出一个对话框,问你是否确定退出软件? 在Qt中同样提供了一个函数来实现这个功能,那就是QCloseEvent 它的具体定义是这样的: void QMainFrame::closeEvent ( QCloseEvent 阅读全文
posted @ 2021-06-23 14:51 一杯清酒邀明月 阅读(1147) 评论(0) 推荐(0) 编辑
Qt QThread与QObject的关系
摘要:Threads and QObjects QThread 继承 QObject.。它可以发送started和finished信号,也提供了一些slot函数。 QObject.可以用于多线程,可以发送信号调用存在于其他线程的slot函数,也可以postevent给其他线程中的对象。之所以可以这样做,是 阅读全文
posted @ 2021-06-23 10:47 一杯清酒邀明月 阅读(678) 评论(0) 推荐(0) 编辑
Qt QObject::killTimer: timers cannot be stopped from another thread
摘要:出现这个错误的原因在于在次线程中执行主线程对象的一些操作引起的。 可以这样修改: 如果次线程需要更新主线程对象状态,需要发送消息,主线程对象接收后处理而不能在此线程中直接操作。 QT定时器非常好,只要注意跨线程问题 QT定时器线程相关的使用注意事项: 不能夸线程启动定时器和停止定时器 不能夸线程启动 阅读全文
posted @ 2021-06-23 10:38 一杯清酒邀明月 阅读(2987) 评论(0) 推荐(0) 编辑
C++ 单例模式总结与剖析
摘要:C++ 单例模式总结与剖析 单例可能是最常用的简单的一种设计模式,实现方法多样,根据不同的需求有不同的写法; 同时单例也有其局限性,因此有很多人是反对使用单例的。本文对C++ 单例的常见写法进行了一个总结, 包括懒汉式、线程安全、单例模板等; 按照从简单到复杂,最终回归简单的的方式循序渐进地介绍,并 阅读全文
posted @ 2021-06-23 09:54 一杯清酒邀明月 阅读(390) 评论(0) 推荐(0) 编辑
Qt 单例模式的实现(4种方法)
摘要:最简单的写法: 1 static MyClass* MyClass::Instance() 2 { 3 static MyClass inst; 4 return &inst; 5 } 过去很长一段时间一直都这么写,简单粗暴有效。但是直接声明静态对象会使编译出的可执行文件增大,也有可能出现其他的一些 阅读全文
posted @ 2021-06-22 16:32 一杯清酒邀明月 阅读(3531) 评论(0) 推荐(0) 编辑
Qt 单例模式
摘要:单例模式的意图与作用: 意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 作用:主要解决一个全局使用的类频繁地创建与销毁。 注意:在使用单例模式时构造函数是私有的。 优点: 1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例。 2、避免对资源的多重占用(比如写文件操作 阅读全文
posted @ 2021-06-22 16:29 一杯清酒邀明月 阅读(399) 评论(0) 推荐(0) 编辑
Qt 实现单例模式
摘要:单例模式 单利模式作为一种常用的软件设计模式,主要是用来保证系统中只有一个实例,例如一般一个程序中只有一个日志输出实例,一个系统中只有一个数据库连接实例,这时候用单例模式非常合适。 简单的单例模式 1 class QSingleton 2 { 3 public: 4 static QSingleto 阅读全文
posted @ 2021-06-22 14:37 一杯清酒邀明月 阅读(726) 评论(0) 推荐(0) 编辑
Qt QAtomicPointer
摘要:QAtomicPointer类是一个模板类,它对指针提供与平台无关的原子操作 template <typename T> class QAtomicPointer 头文件: #include <QAtomicPointer> cmake: 1 find_package(Qt6 COMPONENTS 阅读全文
posted @ 2021-06-22 14:13 一杯清酒邀明月 阅读(794) 评论(0) 推荐(0) 编辑
Qt 智能指针QPointer, QSharedDataPointer ,QSharedPointer,QWeakPointer和QScopedPointer
摘要:QPointer (4.0) 已经过时,可以被QWeakPointer所替代,它不是线程安全的。 QSharedDataPointer (4.0) -- 提供对数据的COPY-ON-WRITE以及浅拷贝,提供对数据(而不是指向数据的指针)的线程安全的保护。(注:提供对数据的线程安全保护要结合Qsha 阅读全文
posted @ 2021-06-22 14:08 一杯清酒邀明月 阅读(767) 评论(0) 推荐(0) 编辑
Qt QRegExp 正则表达式
摘要:Regexps由表达式(expressions)、量词(quantifiers)和断言(assertions)组成。 最简单的一个表达式就是一个字符,例如x和5。而一组字符可以使用方括号括起来,例如[ABC]将会匹配一个A或者一个B或者一个C,这个也可以简写为[A-C],这样我们要匹配所有的英文大写 阅读全文
posted @ 2021-06-22 10:03 一杯清酒邀明月 阅读(838) 评论(0) 推荐(0) 编辑
Qt 架构图及模块分析介绍
摘要:1、Qt框架图: 2、Qt模块组成 通用软件开发模块 QtCore 核心非图形接口类,为其他模块所调用 QtGui GUI(图形用户接口)功能模块 QtMultimedia 提供低级多媒体功能支持的类 QtNetwork 提供对网络编程支持的功能类 QtOpenGL 提供对OpenGL支持的功能类 阅读全文
posted @ 2021-06-21 14:26 一杯清酒邀明月 阅读(1561) 评论(0) 推荐(0) 编辑
Qt QString判断是否是数字
摘要:1 bool VerifyNumber(QString str) 2 { 3 std::string temp = str.toStdString(); 4 for (int i = 0; i < str.length(); i++) 5 { 6 if (temp[i]<'0' || temp[i] 阅读全文
posted @ 2021-06-17 11:31 一杯清酒邀明月 阅读(1629) 评论(0) 推荐(0) 编辑
Qt 判断QString中的字符串是否为纯数字
摘要:1 /*** 2 *判断一个字符串是否为纯数字 3 */ 4 int Common::isDigitStr(QString src) 5 { 6 QByteArray ba = src.toLatin1();//QString 转换为 char* 7 const char *s = ba.data( 阅读全文
posted @ 2021-06-17 11:29 一杯清酒邀明月 阅读(1481) 评论(0) 推荐(0) 编辑
Qt delete和deletelater的区别
摘要:众所周知delete是C++和QT共有的一个操作符即时使用实时就析构删除了,而QT里的deletelater的原理是:QObject::deleteLater()并没有将对象立即销毁,而是向主消息循环发送了一个event,下一次主消息循环收到这个event之后才会销毁对象。 这样做的好处是可以在这些 阅读全文
posted @ 2021-06-11 13:27 一杯清酒邀明月 阅读(952) 评论(0) 推荐(0) 编辑
Qt QTcpSocket waitForReadyRead()等函数用法——客户端开关读写应用笔记
摘要:当前工作是为设备上位机做TCP通信,所以只需要写客户端程序,环境是Qt5.12 MinGW,用QTcpSocket类。以下是基本的开关读写遇到的沟沟坎坎。 开关代码: 1 myClass() 2 { 3 QHostAddress ip; 4 quint16 port; 5 ip = QHoseAdd 阅读全文
posted @ 2021-06-11 10:40 一杯清酒邀明月 阅读(4750) 评论(0) 推荐(0) 编辑
Notepad++对比两个文件不同的方法
摘要:日常中使用Notepad++较多,有时候需要对编辑的文件与原文件进行对比,Notepad++如何能快速对文件进行对比呢? 方法/步骤 在Notepad++的菜单中选择“插件”--Plugin Manager --Show Plugin Manager 在插件列表中找到compare并选中,然后点击“ 阅读全文
posted @ 2021-06-10 15:01 一杯清酒邀明月 阅读(5045) 评论(0) 推荐(0) 编辑
Qt error C1071 :在注释中遇到意外的文件结束
摘要:改的方法:打开某个出错的.cpp文件 文件–〉高级保存选项 在弹出的窗口中 编码选择:简体中文(gb2312),点击确定。 然后重新保存该.cpp文件,文件的格式就修改完毕了。 阅读全文
posted @ 2021-06-10 14:08 一杯清酒邀明月 阅读(921) 评论(0) 推荐(0) 编辑
Qt error C2601: “...”: 本地函数定义是非法的
摘要:有可能是前面少了一个大括号,导致你后面定义函数时被前面的函数包了进去! 阅读全文
posted @ 2021-06-10 13:18 一杯清酒邀明月 阅读(1030) 评论(0) 推荐(0) 编辑
Qt 错误 C1071 在注释中遇到意外的文件结束 的解决办法
摘要:摘要 错误 C1071 在注释中遇到意外的文件结束 的解决办法 内容 vs编译时遇到错误,提示:错误 C1071 在注释中遇到意外的文件结束 参考这里发现是中文注释的问题,在使用/* 中文注释 */进行中文注释时,中文前后没有加空格,由于编乱码的问题,导致了错误。修改bug前的错误注释如下图: 在中 阅读全文
posted @ 2021-06-10 13:17 一杯清酒邀明月 阅读(775) 评论(0) 推荐(0) 编辑
Qt 串口和线程的简单结合(通过子线程操作串口、movetothread)
摘要:如果你也像我一样,遇到了不知道如何正确的使用子线程去操作串口的问题,建议你看一下下面我的粗略见解,希望你能有所收获。如有不正之处,希望指出。 创建一个带UI的项目,添加Object类来对串口操作进行封装。Object类中继承QObject,可以在这个类中定义一些槽函数,例如初始化串口、打开串口、关闭 阅读全文
posted @ 2021-06-09 15:55 一杯清酒邀明月 阅读(1560) 评论(0) 推荐(1) 编辑
Qt 实现多线程的串口通信
摘要:简述 Qt下无论是RS232、RS422、RS485的串口通信都可以使用统一的编码实现。本文把每路串口的通信各放在一个线程中,使用movetoThread的方式实现。 代码之路 用SerialPort类实现串口功能,Widget类调用串口。serialport.h如下 1 #include <QOb 阅读全文
posted @ 2021-06-09 15:48 一杯清酒邀明月 阅读(6465) 评论(1) 推荐(2) 编辑
软件运行时弹出已停止工作的解决方法
摘要:软件运行时弹出已停止工作的解决方法,极少数部分人电脑在运行软件时会弹出该程序已停止工作, 下面给大家讲一下怎么解决这个问题!! 方法/步骤 1.计算机-属性(如没有计算机选项,可以让用户在左下角开始-计算机-属性也可),选择左上方的高级系统设置。 2.“高级”,再选择性能栏里的“设置” 3.“数据执 阅读全文
posted @ 2021-06-09 10:29 一杯清酒邀明月 阅读(10813) 评论(0) 推荐(0) 编辑
Qt 串口 封装好的类 直接使用
摘要:QT+= serialport serialPort_.h 1 #ifndef SERIALPORT__H 2 #define SERIALPORT__H 3 4 #include <QObject> 5 #include <QSerialPort> 6 #include <QSerialPortI 阅读全文
posted @ 2021-06-08 16:51 一杯清酒邀明月 阅读(336) 评论(0) 推荐(0) 编辑
C++ 在类的定义时初始化非静态变量
摘要:前言距离C++11标准发布时间大约有六年了,但是C++11的诸多特性并未在程序界达到普及的状态,甚至在一些“老程序员”看来,由于他们不了C++11标准新加入的内容,一些正常的程序常常被当做BUG处理,接下来我们就看看C++11加了那些特性,今天我们来测试一下:“在类的定义时初始化非静态变量”。不得不 阅读全文
posted @ 2021-06-04 14:28 一杯清酒邀明月 阅读(350) 评论(0) 推荐(0) 编辑
Qt error C3646: 未知重写说明符
摘要:记录一个报错 error C3646: 未知重写说明符 ①循环引用 在项目文件变多时,由于组织不当,很容易出现头文件的循环引用 有时候虽然没有出现循环引用,但是头文件多处被include :适当的使用前置声明 ②语法错误 ③类的定义的先后顺序有误 ④缺少定义,未包含相应的头文件 阅读全文
posted @ 2021-06-04 14:26 一杯清酒邀明月 阅读(1133) 评论(0) 推荐(0) 编辑
Qt QSpacerItem (Horizontal Spacer 、Vertical Spacer) 的隐藏与显示
摘要:在使用QT进行页面ui设计的时候,我们会经常性的使用Horizontal Spacer 或者Vertical Spacer 来辅助我们完成界面的构造。 在这里我们通俗的说的“弹簧”就是这个东西。我们先来看一下在QT Designer 里面是怎样显示的这个“弹簧”的。 我们看到添加的“弹簧”的类,居然 阅读全文
posted @ 2021-06-02 09:56 一杯清酒邀明月 阅读(2431) 评论(0) 推荐(0) 编辑
Qt QSpacerItem
摘要:简述 QSpacerItem类为布局提供了一个空白区。 比对 通常情况下,不需要直接使用这个类,Qt内建布局管理器在操控空白区时提供以下功能: 类 函数QHBoxLayout addSpacing()、addStretch()、insertSpacing()、insertStretch()QGrid 阅读全文
posted @ 2021-06-02 09:54 一杯清酒邀明月 阅读(795) 评论(0) 推荐(0) 编辑
Qt QSS QPushButton
摘要:QSS功能强大,可以自定义各种小部件的外观,其样式表的概念,术语和语法与HTML的CSS样式表类似。 首先创建qss文件,例如:style.qss,把它加到资源文件中, 在代码里加载文件,代码如下 1 QFile file(":/style.qss"); 2 file.open(QFile::Rea 阅读全文
posted @ 2021-06-01 16:58 一杯清酒邀明月 阅读(573) 评论(0) 推荐(1) 编辑