今天继续前面的内容。既然已经进入2D绘图部分,那么就先继续研究一下有关QPainter的东西吧! 反走样是图形学中的重要概念,用以防止锯齿现象的出现。很多系统的绘图API里面都会内置了反走样的算法,不过默认一般都是关闭的,Qt也不例外。下面我们来看看代码。这段代码仅仅给出了paintEvent函数,相信你可以很轻松地替换掉前 发布时间:2012-06-29 作者: 佚名技术 views(287)
前面说了几个标准对话框,下面不打算继续说明一些组件的使用,因为这些使用很难讲完,很多东西都是与实际应用相关的。实际应用的复杂性决定了我们根本不可能把所有组件的所有使用方法都说明白。这次来说说Qt相对高级一点的特性:事件。 事件(event)是有系统或者Qt本身在不同的时刻发出的。当用户按下鼠标,敲下键盘,或者是 发布时间:2012-06-29 作者: 佚名技术 views(193)
这里分析的是libevent-1.4.9。 PS:前面还看了libev的源代码,妈的,那代码写的太猥亵了,相比较libevent代码写的好多了。。 首先来看一下最主要的几个数据结构: eventop结构体是所有事件驱动模型的基类。所有的io复用类型都会实现此结构体里各种方法。 struct eventop { const char *name; ///事件驱动名称 void 发布时间:2012-06-29 作者: 佚名技术 views(607)
经过前面的章节,我们已经能够画出一些东西来,主要就是使用QPainter的相关函数。今天,我们要看的是QPainter的坐标系统。 同很多坐标系统一样,QPainter的默认坐标的原点(0, 0)位于屏幕的左上角,X轴正方向是水平向右,Y轴正方向是竖直向下。在这个坐标系统中,每个像素占据1 x 1的空间。你可以把它想象成是一张坐标值,其 发布时间:2012-06-29 作者: 佚名技术 views(829)
本章内容也是关于Qt事件。或许这一章不能有一个完整的例子,因为对于事件总是感觉很抽象,还是从底层上理解一下比较好的吧! 前面说到了事件的作用,下面来看看我们如何来接收事件。回忆一下前面的代码,我们在子类中重写了事件函数,以便让这些子类按照我们的需要完成某些功能,就像下面的代码: void MyLabel::mousePres 发布时间:2012-06-29 作者: 佚名技术 views(244)
在libevent中定时器的实现是通过基于最小堆的优先级队列来实现的。 对于这两个数据结构比较陌生的可以去翻算法导论的6.5节。 主要的源码都在min_heap.c中。 我们先来看主要的数据结构: typedef struct min_heap { struct event** p; unsigned n, a; } min_heap_t; 在这个数据结构中 p也就是整个优先级队列, 发布时间:2012-06-29 作者: 佚名技术 views(295)
最近刚刚一个项目自己用libevent,因此这几天又把libevent的代码拿出来翻了下,当初看的时候有些似是而非的东西,这次是基本没有了。这篇也算是前面几篇libevent的blog的补充了。 struct event_base { const struct eventop *evsel; void *evbase; int event_count; /* counts number of total events 发布时间:2012-06-29 作者: 佚名技术 views(549)
Borland C++ Builder(以下简称C++ Builder)是由Borland公司 继Delphi之后又推出的一款高性能可视化集成开发工具。C++ Builder具有快速的可视化开发环境:只要简单地把控件(Component)拖到窗体(Form)上,定义一下它的属性,设置一下它的外观,就可以快速地建立应用程序界面;C++ Builder内置了100多个完全封装了Win95公 发布时间:2012-06-29 作者: 佚名技术 views(695)
|