自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 带超链接的Tableview

在TableView中插入插连接的一种办法

2022-09-27 18:35:15 460 1

原创 空类的大小

class A{};int main(){ std::cout << sizeof(A)<< std::endl; return 1;}为什么输出结果是1呢?实际上,这是类结构体实例化的原因,空的类或结构体同样可以被实例化,如果定义对空的类或者结构体取sizeof()的值为0,那么该空的类或结构体实例化出很多实例时,在内存地址上就不能区分该类实例化出的实例,所以,为了实现每个实例在内存中都有一个独一无二的地址,编译器往往会给一个空类隐含的加一个字节.

2022-04-26 19:00:17 254

原创 如何在qml中使用opengl接口进行渲染

在QWidget中,可以使用QOpenglWidget调用opengl接口进行渲染,因为QWidget大部分控件都是依赖于平台的(cpu绘制),所以我们调用opengl的接口时不需要考虑opengl的context共享,所以相对简单。但是qml的渲染策略有所不同,在可以使用硬件加速的环境下,qml是把当前所有可视元素都“堆放”在一起,然后统一使用gpu渲染。所以如果我们想要在qml中使用opengl接口进行绘制,需要考虑调用的时机以及不同窗口之间资源的共享,下面提供一种方法。想要在qml中使用,我们需要

2022-04-24 17:59:27 4600

原创 Effective C++阅读笔记 四

1,让接口容易被正确使用 促进正确使用:保持接口一致性,增加内置类型的兼容 阻止误用:通过建立新类型及限制类型的操作,对参数加以束缚,减少意外的失误。2,设计class犹如设计type C++定义一个类的时候,也就设计出了一种新的类型,我们需要谨慎考虑以下几点: a,class对象应该如何创建与销毁? b,对象的初始化与赋值该有怎么样差别? c,对象如果进行值传递,会有什么影响? ...

2021-07-01 19:10:22 111

原创 Effective C++阅读笔记 三

1,谨慎处理资源的释放问题 对于动态申请的内存,要注意释放,因为有时候调用了某些条件语句会导致内存没有释放。书中建议使用auto_ptr,但C++11之后有更加合适的智能指针来管理。 谨慎处理资源的赋值。2,成对使用new与delete时要采取相同形式 当我们使用new的时候,会有两件事发生:一是内存被分配出来,二是针对此内存会有一个或多个构造函数被调用。delete的时候,则是先调用一个或者多个析构函数,然后内存才被释放。 但...

2021-07-01 15:08:25 90

原创 Effective C++阅读笔记 二

1,了解C++编译器默认编写的函数 对于一个类,编译器会根据需要创建默认构造函数,默认拷贝函数,默认析构函数以及默认重载赋值运算符。但值得注意的是,只有这些函数需要被调用并且我们没有手动定义的时候,它们才会被编译器创建。 值得注意的是,对于拷贝构造函数或者赋值运算符的重载,由于默认的只是简单的赋值,所以对于成员变量为const的情况下,编译器也不会生成对应的默认函数。甚至在我测试的C++14中,如果存在const成员变量,编译器会拒绝生成默认构造函数。(不一定正确)...

2021-06-30 19:35:11 91

原创 Effective C++阅读笔记 一

1,尽量用const或者enum代替#define。 #define,在预编译的时候,系统只是进行单纯的文本替换,而不存在类型检查,所以可能存在风险。2,对于形似函数的宏定义,最好用inline模板进行替换。 #define只是进行文本替换,虽然不会带来函数的额外开销,但有时候很出错,尽管给宏的“实参”加上括号,也不能彻底避免,例如:#define CALL_WITH_MAX(a,b) func((a)>(b)?(a):(b))int a = 10...

2021-06-30 17:00:11 133

原创 QMainWindow全屏闪烁

今天遇到的一个bug,记录一下。大概就是再使用QMainWindow::showFullScreen的时候,虽然全屏显示,但是屏幕不断闪烁,而且无法显示菜单栏下拉框。解决方法如下:重写showEvent方法:void MainWindow::showEvent(QShowEvent * e){ QWidget::showEvent(e); QWindowsWindowFunctions::setHasBorderInFullScreen(this->windowHandle

2021-06-03 19:43:43 1006

原创 Qt元对象系统

元对象系统可以说是QT最核心的功能了,就是因为元对象系统的存在,才有了QT的信号槽和动态属性,今天打算复习下这套机制。以下内容都是自己的理解,有不正确的地方欢迎指正!Qt元对象系统的实现主要依赖于三点:继承QObject,包含Q_OBJEC宏以及moc编译器。对于继承了QObject且在头文件声明了Q_OBJECT宏的类classA,moc编译器会扩展生成一个moc_classA.cpp的文件,在里面添加了一些支持信号槽等功能的代码————主要是生成classA对性的metaObject类,以及

2021-06-03 19:39:04 797

转载 谷歌代码规范

马住https://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/contents/

2021-05-31 17:36:56 99

原创 QObject学习

做一下QObject的相关笔记,准备来一个系统性的学习。以下内容全部是个人理解,有谬误的地方欢迎大佬指出!QObject的成员变量首先,我们先看一下QObject的大小: qDebug()<<sizeof(QObject);结果输出为8,我们打开QObject的源码,可以发现这8个字节是类的虚表指针和一个指针成员变量QScopedPointer<QObjectData> d_ptr;点开定义发现QScopedPointer是一个模板类,内部...

2021-05-27 18:49:09 1287

原创 QApplication学习

对于QCoreApplication,QGuiApplication以及QApplication,我一直分的不是很清楚,今天来梳理一下,并顺便记一些相关的笔记。以下内容全部是自己的理解,有不正确的地方,欢迎大佬指出!QCoreApplicationQCoreApplication位于core模块,源码在Src\qtbase\src\corelib\kernel目录下,为应用程序提供了一个非gui的事件循环。int main(int argc, char *argv[]){ QCo

2021-05-26 19:04:53 1438

原创 浅析C指针

对于很多C语言的学习者来说,指针无疑是一个很让人迷惑的东西,往往让人一头雾水,很多类C的编程语言(Java等)甚至移除了指针这个概念。但其实,指针可以说是C语言的灵魂,运用得当,可以发挥巨大的作用,现在就让我们一起来学习一下指针。以下内容属于个人理解,有问题请大家指正,谢谢!首先,让我们来弄清楚,什么是指针?我们都知道,C语言中,变量是存放在内存中的,而内存可以简单理解为一个有序字节组成的数组,每一个字节都有对应的位置,那么变量就应该有对应的储存地址。而指针,就是储存着变量地址的变量。这么说

2021-05-12 19:17:00 132

原创 QT+opengl实现3D点云和三维坐标系

最近利用opengl+QT实现了一个3D点云,并且点击点云的时候可以画出一个以选中点为原点的三维坐标系,可以实现移动和旋转,大概效果如下: (图中的小黄圆是截屏软件导致的,并非实际效果。)在这里分享几个关键函数。 将屏幕坐标转换为opengl的世界坐标:QVector3D GlDisplayWidget::mousePosToWor...

2021-05-10 15:57:30 9431 6

原创 在子线程中进行GUI渲染的一种思路。

在子线程中进行GUI渲染的一种思路。 从新开始写博客,记录一下QT学习之中遇到的坑,都是个人理解,有错误的地方,希望大家多多指正。 之前看见有人提出了能不能在子线程进行GUI渲染,都知道GUI是在主线程完成渲染的,但是可以通过QPainter在子线程“画”一张图片,然后通过信号槽的方式转递给主线程,再在主线程中渲染。这样做的好处是,如果渲染步骤太过繁琐,可以避免造成主线程长时间阻塞。 下面是笔者写的一个demo。ImageThread::~ImageThread(){...

2021-05-10 14:59:14 446

空空如也

空空如也

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

TA关注的人

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