上一页 1 ··· 6 7 8 9 10 11 12 13 下一页

Canonical 要将 Qt 应用带入 Ubuntu

摘要: 1月18日,Ubuntu的创始人 Mark Shuttleworth 在自己的博客中发表通告说,可能会在 Natty 之后的 Ubuntu 11.10 中内置 Qt 库及运行环境,同时会对一些有价值的 Qt 程序进行评估,并考虑会把它们内置于安装光盘及默认安装到 Ubuntu 中。Mark 表示:Qt 一直是开源产品中的佼佼者,而且有着一大批用 Qt 技术开发的一流软件,这是一个非常棒的工具包。另外,目前Ubuntu开发团队遭遇到的最大问题是 ,Qt 与 GTK 程序之间的“系统设定和首选项”有着一定的摩擦,而为了保证在现有包含大量 GTK 程序的 Ubuntu 架构上能与 Qt 应用程序一起 阅读全文
posted @ 2011-01-20 12:57 hicjiajia 阅读(451) 评论(0) 推荐(0) 编辑

Qt状态机实例

摘要: Qt4.6引入了动画框架,摆脱了以往控件只能安静的呆在布局里的时代,利用Qt提供的动画框架,我们可以让控件跳起舞来,呵呵,很有趣啊… 在Qt4.7中又引入了Qt quick技术,其中的QML语言也是专门来定制GUI动画效果的,这是一种新的GUI动画机制,我刚也接触了些,语法类似CSS,实现预定义的动画很方便,所见即所得,路还得一步步走,先学习一下传统的Qt动画方式——状态机这里先直接给出例子(见图):下面是源码:[代码] 阅读全文
posted @ 2011-01-19 17:45 hicjiajia 阅读(6492) 评论(0) 推荐(0) 编辑

视频播放的基本原理

摘要: 视频播放的基本原理 当初看VLC代码花了不少时间,其中很大的原因是不太了解视频播放的基本原理。现在看来,几乎所有的视频播放器,如VLC、MPlayer、Xine,包括DirectShow,在播放视频的原理和架构上都是非常相似的,理解这个对理解VLC的源码会有事半功倍的效果。 大致的来说,播放一个视频分为4个步骤: 1. acess 访问,或者理解为接收、获取、得到 2. demux 解复用,就是把通常合在一起的音频和视频分离(还有可能的字幕) 3. decode 解码,包括音频和视频的解码 4. output 输出,也分为音频和视频的输出(aout和vout) 拿播放一个UDP组播的MPEG 阅读全文
posted @ 2011-01-19 16:47 hicjiajia 阅读(1470) 评论(0) 推荐(0) 编辑

<STL> accumulate 与 自定义数据类型

摘要: C++ STL中有一个通用的数值类型计算函数— accumulate(),可以用来直接计算数组或者容器中C++内置数据类型,例如:[代码]但是对于自定义数据类型,我们就需要自己动手写一个类来实现自定义数据的处理,然后让它作为accumulate()的第四个参数,accumulate()的原型为(文件取自DEV-C++编译器):[代码]第四个参数为 __binary_op ,我们需要重写这个函数对象,后面还会继续分析...假设自定义数据类型为:[代码]那么我们可能要定义如下列的类:[代码]注意,在类中我们重写了operator(),其中第一参数是int类型,第二个参数是const Student 阅读全文
posted @ 2010-12-21 00:01 hicjiajia 阅读(2739) 评论(0) 推荐(0) 编辑

<STL> pair随笔

摘要: C++标准中提供了pairT1,T2类型,今天想自己写一个,在实际动手过程中,自定义的类名不能是pair,否则会和C++标准中的pair类冲突,于是我定义成了pair1。这里我有点不太明白的是,我们都知道pair是在头文件utility.h中定义的,我并没有引入这个头文件,但居然编译的时候提示pair已经定义,不明白....[代码] 阅读全文
posted @ 2010-12-18 16:46 hicjiajia 阅读(3544) 评论(0) 推荐(0) 编辑

<STL> 容器混合使用

摘要: 1. 定义一个表示学生的结构(Student),其中包含一个名字(string)和一个分数(total)2.用一个索引值(随便一个整数)和一个结构(Student)来构造pairint,Student3.用pairint,Student作为set容器的插入元素。这里要了解的是,这里插入到set容器的元素(pairint,Student)是我自定义的,因此需要定义针对pairint,Student进行比较大小的函数,方能插入set容器中,因为set容器是有序的。其他的就不需要解释了,直接看代码...[代码]注意:在Student结构中,我重写了operator(),以方便输出 阅读全文
posted @ 2010-12-18 15:55 hicjiajia 阅读(649) 评论(1) 推荐(1) 编辑

<STL> set随笔

摘要: 记录下我在学习STL过程中一些笔记,本人忘性太大,不得不做笔记,还是两份笔记,一份纸张版,一份网络版...[代码]我们知道 set 容器它是有序的,所以在向容器插入数据的时候,set 容器会根据 operator() 操作符进行排序,对于C++内置类型排序是没有问题的,但是本例中我们自定义了一个数据类型为student, 此时set容器就无法自动为我们排序了,因此我们需要自己定义 operator() 实现student 类型的大小比较,对此有两种方法,一种是重写一个比叫对象(本例为PS),然后重写operator()函数 ,在函数中进行比较两个关键字的大小,上面的代码用的就是这种方法,至 阅读全文
posted @ 2010-12-18 14:48 hicjiajia 阅读(1055) 评论(0) 推荐(0) 编辑

C++ 文件流

摘要: 一、ASCII 输出  为了使用下面的方法, 你必须包含头文件fstream.h(译者注:在标准C++中,已经使用fstream取代fstream.h,所有的C++标准头文件都是无后缀的。)。这是 iostream.h的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, iostream.h 已经被fstream.h包含了, 所以你不必包含所有这两个文件, 如果你想显式包含他们,那随便你。我们从文件操作类的设计开始, 我会讲解如何进行ASCII I/O操作。 如果你猜是"fstream," 恭喜你答对了! 但这篇文章介绍的方法,我们分别使用"ifstream"?和 阅读全文
posted @ 2010-12-07 13:01 hicjiajia 阅读(1228) 评论(1) 推荐(0) 编辑

散列表(C版)

摘要: 可以直接编译通过,可以试一下....[代码] 阅读全文
posted @ 2010-12-07 00:08 hicjiajia 阅读(1098) 评论(0) 推荐(0) 编辑

c++ 内存存储 解决char*p, char p[]的问题

摘要: 栈:通常用于编译期间就能确定存储大小的变量的存储区,用于在函数作用域内创建,在离开作用域后自动销毁的变量的存储区。有种说法是默认大小1M.堆:通常用于那些在编译期间不能确定存储大小的变量的存储区。它的存储空间是不连续的。一般由malloc(或new)函数来分配内存块,并且需要用free(或delete)来释放内存。如果程序员没有释放掉,那么就会出现内存泄露问题。 全局/静态存储区:和“栈”一样,通常是用于那些在编译期间就能确定存储大小的变量的存储区。但是它用于整个程序运行期间都可见的全局变量和静态变量。 常量存储区:通常用于编译期间能确定存储大小的常量的存储区。并且在运行期间,存储区内的常量也 阅读全文
posted @ 2010-12-06 13:32 hicjiajia 阅读(2116) 评论(2) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 下一页