种地日志

「让黑暗与肮脏永远的留在过去」

递归的使用

不同的递归使用场景

递归的使用 目前个人遇到过的几种情况 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 //不带有任何返回参数的递归,通常闭合条件是内定的 void Fun(T* tObj) { if(/*some case*/) { Fun(newObj); } } //没有返回参数,但是可...

输出QT对象树

QT对象树机制

输出QT对象树 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 void CountObjects(QObject* pRoot) { //输出所有的子孩子 QObject* pRootWidget = pRoot; QStack<QObject*> objStack; int iCnt = 0; objSt...

获取颜色对应的字符串

16进制字符串和颜色之间的转换

获取颜色对应的字符串 获取颜色的字符串 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 QString GetQColorStr(const QColor& t_color) { int c_red = t_color.red(); int c_green = t_color.green(); int c_blue = t_color.blue...

结构体继承情况下,子类memset导致函数调用出现问题

属于C++基础知识,虚表指针

结构体继承情况下,子类memset导致函数调用出现问题 相关代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 struct I_Basic { virtual void GetBinaryData...

模板类继承

模板开发也很重要啊

模板类继承 示例代码 C++中的模板类也可以进行继承,可以通过派生类继承模板类,并根据需要对模板参数进行具体化或特化。下面是一个简单的示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 // 定义一个模板类 template<typename T...

将int以字节的形式放在vector中

二进制数据刷入内存中

将int以字节的形式放在vector中 1 2 3 4 5 6 7 8 9 10 11 void PushIntToCharVecInternal(std::vector<char>& buf,int num){ buf.push_back(num); buf.push_back(num>>8); buf.push_back(num>>16...

在QTreeWidget中绘制直线时的相关问题

绘图事件重写

在QTreeWidget中绘制直线时的相关问题 问题1 QWidget::paintEngine: Should no longer be called 错误如下: 1 2 3 4 5 6 QWidget::paintEngine: Should no longer be called QPainter::begin: Paint device returned engine == 0...

在QTreeWidgetItem的右侧显示图标

QT自定义绘制

在QTreeWidgetItem的右侧显示图标 头文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #pragma once #include <QItemDelegate> #include <QObject> class ScenarioDelegateItem : public QItemDelegat...

可变参数列表的使用:修改prinft使之可以自己控制打印等级

定制打印函数

可变参数列表的使用:修改prinft使之可以自己控制打印等级 头文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #pragma once #include <stdio.h> #include <stdarg.h> enum NotifyLevel { NL_ALWAYS = 1 << 0, NL_...

函数指针的使用

使用函数指针可以很方便的进行流程控制

函数指针的使用 动态选择函数 1 2 3 4 //根据不同的mode,来调用不同的类成员函数 void(TestCls:: * addTarget)() = nullptr; addTarget = (addTarget) ? addTarget : (mode == ENUM_A) ? &TestCls::AddTargetFun1 : nullptr; addTarget =...