- 博客(99)
- 资源 (1)
- 收藏
- 关注
原创 for循环条件控制语句由于使用无符号整形导致的死循环问题
//代码片段 for(size_t i = 0; i < -1; i++) ...size_t是unsigned int64类型,当与-1比较大小时,-1会被当无符号整形类型,-1转换成size_t是18446744073709551615,一个很大的数,导致每次判断都成立,死循环,界面卡住了。解决方法:可修改size_t为int类型,当作有符号处理,解决问题。
2023-03-09 17:08:04 276
原创 2021-09-17 QSemaphore、QSystemSemaphore、QSharedMemory用法、区别与联系
QSemaphore 进程级信号量:轻量级线程同步技术,用于同一进程内多线程之间的同步互斥。QSystemSemaphore 系统级信号量:可以在整个系统中使用,即它既可以用于多进程,也可以用于多线程。QSystemSemaphore类是一个比较重量级的线程同步互斥类。所以,除非在同步多进程的情况下,否则不应该使用该类。其他方面,该类和QSemaphore均相同,操作也相同。QSystemSemaphore::QSystemSemaphore(const QString &key, int
2021-09-17 14:30:39 762
原创 2021-09-08 std::vector中swap()函数使用解析
参考博客:https://blog.csdn.net/m0_37251750/article/details/100071023释放内存用法:在这里插入代码片修正空间的用法:在这里插入代码片
2021-09-08 13:52:07 1206
原创 2021-09-02 qAdmin:cannot perform this operation on a closed dataset解决方法
qAdmin:cannot perform this operation on a closed dataset解决方法**问题出现场景:**使用SQLite Administrator打开本地数据库文件。(将工程中用到的xxx.x3d数据库文件,修改扩展名为.s3db,然后使用SQLite Administrator打开)提示qAdmin:cannot perform this operation on a closed dataset**原因:**因为本地数据库的存放路径中含有中文,或数据库文件
2021-09-02 12:03:55 8236
原创 第7章 代理模式
送礼物模型:代理、做嫁衣(实际的实现类)、外部对象类(或客户端应用代码)/*第一版:没有代理的代码外部对象类(mm)与实际的实现类(做嫁衣)直接交互*///被追求者类
2021-09-02 10:33:42 98
原创 第6章 装饰模式
把所需的功能按正确的顺序串联起来进行控制。与建造者模式对比:建造者模式是在内部组装完毕,要求建造的过程必须是稳定的;装饰模式建造过程是不稳定的,把所需的功能按正确的顺序串联起来进行控制。概念:装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。/*Component是定义一个对象接口,可以给这些对象动态地添加职责。ConcreteComponent是定义了一个具体对象,也可以给这个对象添加一些职责(属于它自己地职责)。Decorato
2021-08-31 18:23:12 88
原创 第5章 设计原则—依赖倒转原则
PC电脑里的易拔插——强内聚,松耦合。依赖倒转原则(依赖倒置原则):抽象不应该依赖细节,细节应该依赖于抽象(针对接口编程,通过抽象的接口交互,抽象出顶层的接口叫抽象不依赖于细节;一个函数的具体实现如果用到了其他接口的功能只需要调用其他功能模块的接口即可,这叫细节依赖于抽象)。针对接口编程,不要对实现编程。依赖倒转原则:A.高层模块不应该依赖底层模块。两个都应该依赖抽象。B.抽象不应该依赖细节。细节应该以来抽象。为什么叫倒转呢?面向过程的开发时,为了使得常用代码可以复用,一般都会把这些常用代码写
2021-08-31 15:22:23 133
原创 第4章 设计原则—开放-封闭原则
在软件设计模式中,这种不能修改,但可以扩展的思想也是一种设计原则,开放-封闭原则(The Open-Closed Principle,简称OCP)或叫开-闭原则。概念:开放-封闭原则,是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。两个特征:一个是对于扩展是开放的(Open for extension),另一个是对于更改是封闭的(Closed for modification)。我们在做任何系统的时候,都不要指望系统一开始时需求确定,就再也不会变化,这是不现实也不科学的想法,而既然需求
2021-08-31 15:06:33 492
原创 第3章 设计原则—单一职责原则
3.4 单一职责原则概念:就一个类而言,应该仅有一个引起它变化的原因。我们在做编程的时候,很自然地就会给一个类加各种各样地功能,比如一个窗口应用程序,一般都会生成一个xxxDialog的类,于是我们就把各种各样的代码,像某种业务的业务算法,像数据库访问的SQL语句等都写在这个类当中。这就意味着,无论任何需求要来或者变化,你都需要更改这个窗体类,这其实很糟糕,维护很麻烦(因为这一个类(xxxDialog类)功能点太多,职责太多),复用不可能(如果只想用业务算法或者SQL部分都不可能,因为它们都在一个类中,
2021-08-31 14:54:34 111
原创 第2章 策略模式
2.3 简单工厂实现面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。打一折和打九折只是形式的不同,抽象分析出来,所有的打折算法都是一样的,所以打折算法应该是一个类。...
2021-08-26 18:43:46 149
原创 第1章 简单工厂模式
1.4 面向对象编程int main(){ double _numberA,_numberB,result; char operate; scanf("输入数字A"); scanf("输入数字B"); scanf("输入运算符"); if(operate=='+'){ result = _numberA + _numberB; } if(operate=='-'){ result = _numberA - _numberB; } ... return 1;}碰到问
2021-08-25 18:24:17 226 1
原创 2021-08-24 Qt—事件过滤器
百度搜索eventfilter用法,可参考文章:Qt怎样使用时间过滤器—百度经验:链接QT中eventFilter的使用方法:链接事件过滤器由QObject类中的两个函数来实现。一个是 installEventFilter,它负责在相应部件上安装事件过滤器;第二个函数是 eventFilter 函数,我们在此函数中实现事件过滤器。...
2021-08-24 17:10:38 95
原创 2021-08-19 VS&QT - VS中无转到槽函数选项
问题:VS开发QT项目,在对部件添加槽时,没有右键转到槽菜单项,但是在QtCreator中可以。转到槽为我们做了什么:参考博客:https://blog.csdn.net/weixin_40774605/article/details/108086349解决措施:我们只需要定义好以下槽函数即可,connect 就让 Qt 去完成吧~void on_< object name>_< signal name>(< signal parameters>);如:窗口
2021-08-19 14:52:40 2228
原创 2021-08-18 Qt Designer通过styleSheet设置背景图片,其他控件背景同样被修改问题解决措施
问题:通过QtDesigner设置styleSheet属性为窗口添加背景时,窗口内的子部件背景也被修改了。如图:本想实现效果:解决措施:方法一:添加代码解决,参考博客https://blog.csdn.net/QQ528805117/article/details/46896701方法二:添加专门负责背景的控件,参考博客https://lanzao.blog.csdn.net/article/details/88363916?utm_medium=distribute.pc_relevant_t0
2021-08-18 18:10:31 1837 3
原创 2021-08-18 QtDesigner保存布局窗口提示This file contains top level spacers...
问题:使用QtDesigner设计窗口后,点击保存提示This file contains top level spacers, They will not be saved. Perhaps you forgot to create a layout?解决措施:因为只把布局控件加上了,没有对整个窗口进行布局调整,这时布局不会跟随整个窗口大小改变而改变。需要将整个窗口(主窗口)进行布局调整。在对象查看器中右键QMainWindow提示你无法保存,这时因为你只加把布局控件加了上去,并没有对整个窗
2021-08-18 16:45:01 11406
原创 2021-08-18 VS2013右键工程添加新文件没有Qt模块解决方法
问题:在使用VS2013进行Qt项目开发时,需要新建一个资源(.qrc)文件。右键工程->添加->新建项后,没有找到Qt模块。Qt-vs-addin已安装。解决措施:在工具->扩展更新->联机中搜索安装了QT VS TOOLS插件,重启vs2013重新添加有了qt模块。安装QT VS TOOLS之后一定要重启VS才有效果。安装QT VS TOOLS后效果图:...
2021-08-18 12:01:37 1640
原创 2021-08-18 Win10安装Oracle 11g时遇到“【INS-13001】此环境不满足最低配置”的问题解决措施
Win10安装Oracle 11g时遇到“【INS-13001】此环境不满足最低配置”的问题解决措施:方法一:在oracle安装文件中找到配置文件:\client\stage\cvu\cvu_prereq.xml用记事本打开这个文件,进行编辑: 在6.1下面添加:< OPERATING_SYSTEM RELEASE=“6.2”>< VERSION VALUE=“3”/>< ARCHITECTURE VALUE=“64-bit”/>< NAME V
2021-08-18 10:49:52 937
原创 2021-08-11 QT---之QTranslator【界面语言翻译】及QT-Linguist的用法
QTranslator类可以对窗口里空间的文字进行翻译。用法参考博客:https://blog.csdn.net/weixin_39609623/article/details/82802666?utm_medium=distribute.pc_relevant_download.none-task-blog-2defaultBlogCommendFromBaidudefault-2.test_version_3&depth_1-utm_source=distribute.pc_relevant_
2021-08-11 10:17:31 302
原创 2021-08-11 Qt之程序启动画面
3.8 程序启动画面许多应用程序都会在启动的时候显示一个程序启动画面(splash screen)。一些程序员使用程序启动画面对缓慢的启动过程进行掩饰,而另外一些人则是用于满足市场部门的要求。使用QSplashScreen类,可以非常容易地为Qt应用程序添加一个程序启动画面。类QSplashScreen会在应用程序的主窗口出现之前显示一个图片。它也可以在这个图片上显示一些消息,用来通知用户有关应用程序初始化的过程。通常,程序启动画面的代码会放在main()函数中,位于QApplication::exec
2021-08-11 09:32:24 266
原创 2021-08-10 ()操作符函数
小括号()操作符函数:class SpreadsheetCompare{public:bool operator()(const QStringList& row1,const QStringList& row2) const;enum{ KeyCount = 3 };int keys[KeyCount];bool ascending[KeyCount];};SpreadsheetCompare类有些特殊,因为它实现了“()”操作符。这样就允许把这个类像函数一样使用。把这
2021-08-10 14:18:31 104
原创 2021-08-09 Qt相关函数
1.closeEvent();void closeEvent(QCloseEvent* event);closeEvent()函数是QWidget类中的一个虚函数,当用户关闭窗口时,这个函数会被自动调用。类MainWindow中重新实现了它,这样就可以向用户询问一个标准问题“Do you want to save your changes?”,并且可以把用户的一些偏好设置保存到磁盘中。...
2021-08-09 18:07:07 289
原创 2021-08-09 Qt动态对话框(上班第二周第一天)
2.5 动态对话框动态对话框(dynamic dialog)就是在程序运行时使用的从Qt设计师的.ui文件创建而来的哪些对话框。动态对话框不需要通过uic把.ui文件转换成C++代码,相反,它是在程序运行的时候使用QUiLoader类载入该文件的,就像下面这种方式:QUiLoader uiLoader;QFile file(“sortdialog.ui”);QWidget* sortDialog = uiLoader.load(&file);if (sortDialog){…}可以使
2021-08-09 10:46:14 242
原创 2021-08-06 深入介绍信号和槽、Qt的父-子对象机制
深入介绍信号和槽信号和槽机制是Qt编程的基础。它可以让应用程序编程人员把这些互不了解的对象绑定在一起。前面,已经把一些信号和槽连接在了一起,也声明了自己的信号和槽,还实现了自己的槽,并且还发射了自己的信号。让我们再花一点时间,来进一步地了解这个机制。槽和普通的C++成员函数几乎是一样的——可以是虚函数;可以被重载;可以是公有的、保护的或者私有的,并且也可以被其他C++成员函数直接调用;还有,它们的参数可以是任意类型。唯一的不同是:槽还可以和信号连接在一起,在这种情况下,每当发射这个信号的时候,就会自动调
2021-08-06 11:35:09 280
原创 2021-08-05 Qt会在删除父对象的时候自动删除其所属的所有子对象
#pragma once#include <QDialog>class QCheckBox;class QLabel;class QLineEdit;class QPushButton;class FindDialog : public QDialog{ Q_OBJECTpublic: FindDialog(QWidget* parent = 0); virtual ~FindDialog();signals: void findNext(const QStr
2021-08-05 18:00:54 467
原创 2021-08-05 在cpp文件中包含QtGui
在xx.cpp中#include < QtGui>首先,需要包含< QtGui>,该头文件包含了Qt GUI类的定义。Qt由数个模块构成,每个模块都有自己的类库。最为重要的模块有QtCore、QtGui、QtNetwork、QtOpenGL、QtScript、QtSql、QtSvg和QtXml。其中,在< QtGui>头文件中为构成QtCore和QtGui组成部分的所有类进行了定义。在程序中包含这个头文件,就能够使我们省去在每个类中分别包含的麻烦。在xx.h文件中,本
2021-08-05 17:25:46 442
原创 2021-08-05 无法打开源文件: “GeneratedFiles\Debug\moc_FindDialog.cpp”: No such file or directory
问题出现场景:使用vs2013创建的qt项目,再项目中新建了一个集成QDialog的类,再类中添加了Q_OBJECT宏,编译报错,提示无法打开源文件: “GeneratedFiles\Debug\moc_FindDialog.cpp”: No such file or directory#include <QDialog>class QCheckBox;class QLabel;class QLineEdit;class QPushButton;class FindDialog
2021-08-05 17:06:58 1740
原创 2021-08-05 VS2013安装VA_X开发助手
1.解压VA_X_2223.rar2.双击运行VA_X_Setup2223.exe安装助手3.安装完成后替换文件VA_X.dll文件所在目录为:C:\Users\Administrator\AppData\Local\Microsoft\VisualStudio\12.0\Extensions\随机字符串目录打开vs2013如果没有看到va_x的效果,可以注销或重启计算机,重新打开VS2013查看效果。(由于可能安装了多个或多次安装va_x,随机字符串目录会变化,所以注销后会留下最新的安装目录,
2021-08-05 11:36:32 737
原创 2021-08-04 “模块计算机类型“x64”与目标计算机类型“X86”冲突
问题:编译qt项目提示“模块计算机类型“x64”与目标计算机类型“X86”冲突。问题出现场景:vs2013+qt5.7.1,修改qt由msvc2013到msvc2013_64后,编译之前的qt项目提示“模块计算机类型“x64”与目标计算机类型“X86”冲突。问题解决措施:因为修改了msvc2013到msvc2013_64,所以需要修改项目的配置:解决方法参考:https://blog.csdn.net/u014805066/article/details/78143091,亲测有效1、“链接器
2021-08-05 09:51:17 729
原创 2021-08-04 安装qt-vs-addin1.2.5后,启动vs2013提示Couldn‘t register all Qt4VSAddin commands...
问题安装qt-vs-addin1.2.5后,启动vs2013提示Couldn’t register all Qt4VSAddin commands.:未将对象引用设置到对象的实例。在Qt5VSAddin.AddinInit.registerCommands()问题出现场景:第一天安装vs2013、qt-vs-addin1.2.5,打开项目能正常使用调试,第二天安装KQ…之后启动vs2013提示Couldn’t register all Qt4VSAddin commands.:未将对象引用设置到对象
2021-08-05 09:35:24 652
原创 2021-08-03 使用vs2013调试qt项目时提示This application failed to start because it could not find or load......
问题:使用vs2013调试qt项目时提示This application failed to start because it could not find or load the Qt platform plugin问题出现场景:安装了vs2013,qt5.7.1是拷贝的安装后的文件,通过qt-vsaddin配置qt后调试QT项目,提示This application failed to start because it could not find or load the Qt platform
2021-08-05 09:30:00 860
原创 2021-08-02 安装qt-vs-addin-1.2.5.exe提示cannot registervs VS2013 qt help
问题出现场景:安装qt-vs-addin-1.2.5.exe时,修改安装路径为D盘,启动安装;安装过程中弹出cannot registervs VS2013 qt help提示框。修改措施:使用qt-vs-addin-1.2.5.exe的默认安装路径则不会弹出上述提示框。不使用默认安装路径,即使弹出cannot registervs VS2013 qt help提示框,该插件再VS2013中也能正常使用。...
2021-08-05 09:23:41 523
原创 2021-07-28 年终总结
2014、2015、20162017:软件问题、文档编写通过全年大概两万行代码的修改及优化,完善了XH系统功能。根据项目以及用户需求开发的新功能推进了项目进度,保证了两XH的定型工作。经过全年的功能开发及总结,了解到代码要精,而不是一味累加。全年加班时长758小时,经过全年的加班加点使得两个ZH顺利定型。2018:系统模块维护系统平台迁移(ycl由solaris迁移到windows)系统平台集成(通过使用ocx将mfc开发的软件系统集成到qt系统平台中)开始研究国产化,服务化工作心得体会
2021-07-28 14:10:27 129
原创 2021-07-22 一句话多个镜头拍摄
一直弄不懂怎么回事,一个演员在说话的时候镜头会给好几个方向,虽然画面变了,但声音却一直没变,是怎么拍的呢,小弟喜欢在家拍些小段子,请各位老师不吝赐教!最好能给个此类自学的网站。谢谢啦!最佳答案gcaini11的答复: 刚刚你好,这个可以有两种不同的方法拍。1.在多个角度放置摄像机同时拍摄该场景,后期把需要的角度片段剪接到一起。(优点:一气呵成 缺点:需要多台摄像机)2.一个场景分多个角度拍摄,只由一台摄像机完成,但可能需要演员演出很多遍。后期还是需要剪接完成。(优点:只需要一台摄像机 缺点:拍摄因
2021-07-22 21:53:31 620
原创 2021-06-22 学习资料
1.《计算机常用数值计算算法与程序c++版》(何渝编)配套光盘内容. rar2.24小时学通QT编程.pdf3.C++ Primer 3Rd Edition 中文完美版. pdf
2021-06-22 17:58:55 194
原创 2021-06-14 端午返京时刻表
k5202(石家庄-北京)9:03-9:35 家-县城9:35-10:20 县城-火车站10:53-11:31 定州-保定11:31-11:38 保定-徐水11:38-12:36 徐水-涿州12:36-14:10 涿州-北京14:10-16:10 北京站-云岗北区
2021-06-15 21:40:15 120
原创 2021-06-10 云岗北区--东升科技园时刻表
19:20-19:57 云岗北区-六里桥东19:59-21:09 六里桥东-西小口21:09-21:20 西小口-东升科技园21:26-21:33 东升科技园-西小口21:33-22:45 西小口-六里桥东22:48-23:13 六里桥东-云岗北区
2021-06-15 21:32:15 196
原创 2021-05-30 使用UDP协议进行socket网络通信,接收端recvfrom接收返回-1的原因你知道吗?
该问题和2014-04-28问题比较像问题出现场景:1.使用UDP协议进行心跳通信;2.未绑定端(节点机端)发送大小为65的客户端信息结构体CLIENTDATA;3.绑定端(主控端)在绑定节点机时,通过客户端的sockaddr地址向客户端发送主控心跳时,客户端的套接字状态正常,接收主控心跳返回-1。问题分析:1.最开始怀疑使用sendto、recvfrom函数的最后一个参数的变量值没有初始化大小,即没有int addrlen = sizeof(SOCKADDR),使用之后问题依然存在;2.经过
2021-05-30 17:00:59 2982 3
原创 2021-05-21 系统交付流程
系统由硬件和软件组成,硬件采用1+3+6(1台数据服务器,3台计算服务器,6台GH工作站)模式,1+3+6为一套。通过入库、出库交给用户使用。
2021-05-21 20:55:29 372
原创 2021-05-21 面试座谈
面试座谈面试官(行政上)可能会分享的问题及看法:1.工作中难忘的经历(排故方面上):在工作中遇到过由于内存异常导致的内存泄露、软件崩溃等问题,主要通过排查内存泄漏的工具进行问题排查,以及添加日志输出,指针初始化等方法解决问题。面试官谈了一个分配大空间数组由于连续的内存空间不够导致的软件异常问题,并分享了可通过动态申请一个二维或多维数组(动态内存)来实现小片段连续内存的整合解决问题,或通过将大数组的声明定义放到程序或函数执行尽量靠前,防止没有足够的连续空间导致的数组定义失败问题。2.在工作已经饱和的状态
2021-05-21 20:52:53 150
原创 2021-05-21 qt程序aas运行失败提示undefined symbol: _Z34QBasicAtomicInt_fetchAndAddOrderedPVii问题
问题出现场景: 客户机上使用qt4.8.7编译生成的应用程序(客户机上正常运行),放到服务器上运行提示undefined symbol: _Z34QBasicAtomicInt_fetchAndAddOrderedPVii排查方法: 网上搜索,提示是因为程序需要的qt动态库版本不一致造成的,主要是qtcore、qtgui、qtnetwork相关的库版本不一致解决方法: 从编译程序的客户机中(/usr/lib64中拷贝libQtCore.so.4,libQtCore.so.4.8,libQtCore.s
2021-05-21 14:11:39 1933
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人