C++生成条形码
条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案。
前后端常用概念扫盲
本文主要介绍前后端及客户端开发中遇到的一些常用的技术概念,本文不会涉及太深奥的技术细节。
写给C++程序员的Typescript语法基础
TypeScript 是 JavaScript 的一个超集,支持 ES6 的语法规范,并在此基础上进行了增强,二者最大的不同在于:TypeScript 是强类型语言,而 JavaScript 是弱类型的语言。
写给C++程序员的ES6语法基础
ECMAScript 标准的发展经历了一个漫长的过程,从 1997 年发布的ECMAScript 1.0,到 2011 年的ECMAScript 5.1,再到 2015 年的ECMAScript 2015,以及后面每年都会发布的一个新的 ECMAScript 版本,版本众多,而且每个版本都有新特性的加入。
C++内存池实现
本文从实际需求出发,介绍了内存池的实现原理,并且提供了具体的实现方案。
为什么需要使用内存池
在 C/C++ 中我们通常使用 malloc、free或new、delete 来动态分配内存。
一方面,因为这些函数涉及到了系统调用,所以频繁的调用必然会导致程序性能的损耗;
另一方面,频繁的分配和释放小块内存会导致大量的内存碎片的产生,当碎片积累到一定的量之后,将无法分配到连续的内存空间,系统不得不进行碎片整理来满足分配到连续的空间,这样不仅会导致系统性能损耗,而且会导致程序对内存的利用率低下。
当然,如果我们的程序不需要频繁的分配和释放小块内存,那就没有使用内存池的必要,直接使用malloc,free或new,delete函数即可。
Qt开发路上的“绊脚石”与“垫脚石”
路径相关
- 当前程序可执行文件的据对路径
QCoreApplication::applicationFilePath() - 当前程序可执行文件所在的目录
QCoreApplication::applicationDirPath() - 当前进程的工作目录
QDir::currentPath(),在调用 CreateProcess 函数时通过 lpCurrentDirectory 参数指定进程工作目录 - 通过文件路径获取文件相关信息
1
2
3
4QFileInfo fi("D:/1/2/3 4.txt");
qDebug() << fi.dir().path(); // D:/1/2
qDebug() << fi.fileName(); // 3 4.txt
qDebug() << fi.suffix(); // txt
<原文出自: jiangxueqiao.com,请尊重原创>
QEnum 转字符串
1 | template <typename QEnum> |
移除 Qt 控件虚线框
方式一:使用 StyleSheet
1 | QWidget:focus { |
方式二:继承 QProxyStyle
继承 QProxyStyle,PrimitiveElement 为 QStyle::PE_FrameFocusRect 时不绘制虚线框,然后在 main() 函数里调用 QApplication::setStyle() 使用新的样式。
1 | // 文件名: NoFocusRectStyle.h |
1 | // 文件名: main.cpp |
无法拖入文件到 QListWidget
一般而言,只需要做如下操作,QWidget 即可支持拖入文件:
1 | setDragDropMode(QAbstractItemView::DropOnly); // 仅支持拖入文件 |
但在执行上述操作后,我们拖入文件到 QListWidget 时,却只能收到 dragEnterEvent 事件,却无法收到 dropEvent 事件。
Windbg调试速查手册
Windbg 是 Microsoft 公司推出的免费的、带 GUI 的调试器,支持 Source 和 Assembly 两种模式的调试。
Windbg 不仅可以调试应用程序,还可以进行系统内核调试,Windbg 支持的平台包括 X86、IA64、AMD64。