自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 QT中QGraphics的view,scene,items的关系

前面讲到的是信号如何从前台传递到后面,然后实现要进行的操作,那么,操作完成之后,变化的呈现是从后向前倒回去的,事物的改变导致场景的改变,而观察场景的view就回呈现出不同的结果,要使view能够实时观察到变化,就是不停地刷新update,这样一个实时交互的场景就呈现出来了。view即为视窗,你可以理解为一个摄像机,把摄像机放在scene前,摄像机的取景框是有边界的,所以从view看到的scene只是scene的一部分,我们转动摄像机的镜头就可以看到scene的其他地方。

2024-05-12 20:01:58 209

原创 c++webserver: EventLoop模块设计

EventLoop是一个事件循环,功能是进行事件监控和事件处理。我们添加需要监听的事务到这个事件循环内,每次有事件发生就会通知,然后根据不同的描述符、事件类型进行处理。有了EventLoop模块,服务器的所有事件都由EventLoop模块来完成。每当有一个连接,都会绑定一个EventLoop模块和线程。

2023-12-26 18:01:21 331 1

原创 数据类型uint8_t / uint16_t / uint32_t / uint64_t

uint8_t / uint16_t / uint32_t / uint64_t 这些数据类型中都带_t ,表示这些数据类型是通过typedef定义的,也就是我们已知的数据类型的别名。主要原因是方便代码的维护。比如,在C中没有bool型,于是在一个软件中,一个程序员使用int,一个程序员使用short,会比较混乱。最好用一个typedef来定义一个统一的bool。为什么要用 typedef 重新定义?在C99标准中定义了这些数据类型。

2023-12-24 11:36:24 343 1

原创 理解和运用epoll

相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。这是一张epoll工作原理的汇总图。

2023-12-20 19:24:46 736

原创 设置文件描述符为非阻塞状态

在非阻塞状态下,当某个操作无法立即完成时,该操作会立即返回一个错误码,而不会暂停程序的执行。F_SETFL 设置文件描述符状态flags,参数arg为新flags,但只允许O_APPEND、O_NONBLOCK和O_ASYNC位的改变,其他位的改变将不受影响。在编程中,阻塞是指当一个操作无法立即完成时,程序会暂停执行,直到操作完成为止。在以上代码段中还包含了另一个函数fcntl, fcntl 函数可以用来改变文件描述符的属性。F_GETFL 取得文件描述符状态flags,此flags为open()的参数。

2023-12-19 19:01:23 454

空空如也

空空如也

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

TA关注的人

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