摘要: 在Qt助手(assistant.exe)搜索关键字"Setting the Application Icon"就可以看到在各种平台设置Qt程序图标的方法。 Setting the Application Icon on Windows: First, create an ICO format bitmap file that contains the icon image. This ca... 阅读全文
posted @ 2008-09-05 13:21 Codespy 阅读(3675) 评论(0) 推荐(0) 编辑
摘要: 字符串,字节数组,和可变类型(Variants) QString, QByteArray, 和 QVariant这三个类和容器有许多相同之处,并且在一些情况下可以被当作特殊的容器。 同样,像容器,这些类使用隐式共享来优化内存和速度。 我们将从QString开始。 字符串被每个GUI程序所使用,不仅是用户界面而且还有数据结构。 C++原生提供两种字符串: 传统的C风格以'\0'结尾的字符数组和s... 阅读全文
posted @ 2008-08-16 17:40 Codespy 阅读(2160) 评论(0) 推荐(0) 编辑
摘要: 泛型算法 头文件声明了一组全局模板函数,这些函数实现了作用在容器上的基本算法。 这些函数中的多数使用STL风格迭代器。 STL头文件提供更完整的泛型算法集合。 这些算法可以被用在Qt容器上以及STL容器上。 如果在你的所有平台上STL实现可用,当Qt缺少一个相同的算法的时候,那么可能没有理由去避开使用STL算法,。 这里,我们将介绍最重要的Qt算法。 qFind()算法在容器中查找某一个值。... 阅读全文
posted @ 2008-08-16 17:39 Codespy 阅读(654) 评论(0) 推荐(0) 编辑
摘要: 关联式容器 关联式容器持有同一类型的条目,每个条目被一个键所索引。 Qt提供两种主要的关联式容器: QMap 和 QHash。 QMap是一种按照键值从小到大的顺序存储键值对的结构。 这个装置提供了一个好的性能,对于检索,插入和中序遍历(in-order iteration)。 在内部,QMap用跳跃表(skip-list)来实现。 图 11.6. A map of QString to... 阅读全文
posted @ 2008-08-16 17:38 Codespy 阅读(771) 评论(0) 推荐(0) 编辑
摘要: 序列式容器 QVector是一个类数组(array-like)的数据结构,它将它的条目存储在内存中相邻的位置上。 向量区别于普通的C++数组的是向量知道自己的大小并能够调整自己的大小。 在向量的尾部追加数据是非常高效的,而从向量的头部或中间插入数据的代价是很昂贵的。 图 11.1. 一个double类型向量 如果我们事先知道要用到的条目数,我们可以在定义向量的时候给它一个初始大小并使... 阅读全文
posted @ 2008-08-16 17:37 Codespy 阅读(1109) 评论(0) 推荐(0) 编辑
摘要: 十一章 容器类 序列式容器 关联式容器 泛型算法 字符串,字节数组,和可变类型 容器类是通用目的模板类,将给定类型的条目存储在内存中。 C++已经提供许多的容器作为标准模板库(STL)的一部分,被包含在C++标准库中。 Qt提供它自己的容器类,所以对于Qt程序我们可以使用Qt和STL的容器。 Qt... 阅读全文
posted @ 2008-08-16 17:36 Codespy 阅读(698) 评论(0) 推荐(0) 编辑
摘要: 实现自定义代理(delegate) 视图中单个条目的渲染和编辑是通过代理来进行的。 在大多数情况下,由视图所提供的缺省的代理已经足够。 如果我们希望更好地控制条目的渲染,简单地通过使用自定义模型,我们就能经常达到要求。 在我们重新实现的data()中,我们可以持有Qt::FontRole, Qt::TextAlignmentRole, Qt::TextColorRole, 和Qt::Backgr... 阅读全文
posted @ 2008-08-16 17:34 Codespy 阅读(2263) 评论(0) 推荐(0) 编辑
摘要: 实现自定义模型 Qt的预定义模型为处理和浏览数据提供了便利。 然而一些数据源不能通过预定义的模型而被高效利用,所以对于这样的情况有必要创建针对底层数据源而优化的自定义模型。 在我们着手创建自定义模型前,让我们先回顾下Qt的 模型/视图 架构中使用的关键概念。 模型中的每个数据元素都有一个模型索引和一组属性,这组属性被称为角色(roles)并能够携带任何值(arbitrary values)。 ... 阅读全文
posted @ 2008-08-16 17:33 Codespy 阅读(2732) 评论(4) 推荐(2) 编辑
摘要: 刚开始接触Qt,Qt让人印象深刻。不过系统地讲授Qt4编程知识的文章比较少,除了我发现的CSDN网友"iamdbl"翻译的C++ GUI Programming with Qt 4(http://blog.csdn.net/iamdbl/archive/2007/01/25/1493594.aspx)。目前他只翻译到了第10章的第2节(Using Predefined Models)。因为我很快就... 阅读全文
posted @ 2008-08-16 17:30 Codespy 阅读(1135) 评论(0) 推荐(0) 编辑
摘要: 以MS visual studio为例。在项目的源码目录下建立一个GeneratedFiles文件夹,然后在visual studio中为项目新建一个筛选器Generated Files。选择需要使用Qt元对象编译器(moc.exe)进行编译的一个头文件(假设这个文件为mainwindow.h),然后打开它的属性对话框。选择属性中的“自定义生成步骤|常规”, 在”命令行“中输入:"$(QTDIR)... 阅读全文
posted @ 2008-08-16 17:23 Codespy 阅读(2660) 评论(1) 推荐(0) 编辑