当前位置: 首页 > news >正文

域名拍卖网站做珠宝商城网站

域名拍卖网站,做珠宝商城网站,网站设计app,磁力棒第3章 Qt简介 3.2 Qt核心模块 Qt是一个大库#xff0c;由数个较小的库或者模块组成#xff0c;最为常见的如下#xff1a;core、gui、xml、sql、phonon、webkit#xff0c;除了core和gui#xff0c;这些模块都需要在qmake的工程文件中启用 QTextStream 流#xff0c;Qdat…        第3章 Qt简介 3.2 Qt核心模块 Qt是一个大库由数个较小的库或者模块组成最为常见的如下core、gui、xml、sql、phonon、webkit除了core和gui这些模块都需要在qmake的工程文件中启用 QTextStream 流Qdate 日期 3.3 Qt Create用于Qt编程的集成开发环境 在Qt软件开发包 Qt Software Development KitSDK中包含有Qt Creator其中包含了Qt和快速开始使用Qt 进行开发工作的所有东西 可使用拖放窗体布局来完成设计的Qt设计师也完全集成到了Qt Creator中 Qt Creator 用到的项目文件是 qmake 的.pro 文件通过创建或编辑Qt Creator中已有的项目文件可以完全避免命令行工具的使用 第4章 列表 只要有可能 就应当使用列表而不是数组 4.1  容器 列表 QList 4.2、迭代器 迭代器是一个提供对容器中的每一个元素进行间接访问的对象它专门被设计用于在循环之中三种迭代器模式foreach循环C迭代器Java风格的迭代器 QStringList  实际上就是一个QListQString使用split()函数和join()函数在列表与字符串之间进行转换 相当简单 #include QStringList #include QDebugint main() {QString winter December, January, February;QString spring March, April, May;QStringList list;list winter;list.append(spring);qDebug() list;QString test list.join(,); //list转换字符串qDebug() test;QStringList list2 test.split(,);//字符串转换listqDebug() list2;Q_ASSERT(list2.size() 6 );foreach (const QString str, list2) { //foreach循环qDebug() QString( [%1] ).arg(str);}for(QStringList::iterator it list2.begin();//C迭代器it!list2.end(); it){qDebug() *it;}QListIteratorQString itr( list2 );//Java风格的迭代器while(itr.hasNext()){qDebug() itr.next();}return 0; } 目录有时称为文件夹是文件的容器目录可以包含符号链接指向另外的文件或目录对于处理文件或目录的大多数操作可以使用符号链接而不是文件名称或路径名称 QDir 和 QDirIterator #include QDebug #include QDir #include QDirIteratorint main() {QDir dir QDir::current(); // QDir 类的静态成员函数current成员函数 absolutePathQDirIterator qdi (dir.absolutePath(), QDir::NoDot|QDir::Files, QDirIterator::Subdirectories);while(qdi.hasNext()){ //hasNext、next 是 QDirIterator 类的成员函数qDebug() qdi.next();}return 0; } 4.3 关系 三种关系关联只用于导航性、聚合无管理的包含关系、组合带管理的包含关系 第7章 库与设计模式 库是一组代码模块它按照可复用的方式组织代码库中保存的是有用的、可复用的、编译后的代码当用#include指令包含库模块的头文件时就可以复用这个库模块 当复用来自于库中的任何模块时其工作由链接器linker在链编build过程完成可执行文件必须在运行时找到并动态地链接到编译后的库称为运行时库库lib是一个文件它包含一个或者多个编译后文件并对其进行了索引 C库能够以多种途径被打包开源包 通常以压缩的档案文件形式发布它包含全部的源代码、头文件以及链编脚本和文档dev包 在Linux包管理程序中有时被称为-devel包它通常以档案文件的形式发布包含一个库以及相关的头文件运行时库 由lib文件组成没有相关联的头文件所以它只能用于执行已经用这个库链编过的应用 7.1 建立并复用库 qmake可以在工程文件里访问CPPLIBS环境变量其访问语法是 $$(CPPBLIBS)qmake也可以包含其他的工程文件片段       工程为 LIBS 和 INCLUDEPATH 变量 添加一些值使它能够找到所 依赖的库和头文件qmake无法知道用来构建工程所需要的外部库如果工程依赖于某个外部库则必须编辑这个工程文件将它的值赋予变量INCLUDEPATH和LIBS 假设应用所需使用dataobjects库其头文件位于$CPPLIBS/dataobjects下共享目标文件的库位于$CPPLIBS下那么必须如下这些行添加到工程文件中 INCLUDEPAHT $$(CPPLIBS)/dataobjects #头文件 LIBS -L$$(CPPLIBS) # lib 搜索路径 LIBS -ldataobjects # link with libdataobjects.so 组织库依赖性管理对于类只要被复用者类的接口发生改变就使得复用者的实现必须改变则它们之间就存在依赖性编译时依赖 和 链接时依赖当设计类和库时需要确保尽可能地减少不必要的或者无意的依赖性对于类定义头文件需遵循的一条规则是如果可以使用 前置声明就不要使用#include指令 安装库当编写并测试完库之后在链编过程结束后它将被安装到由qmake变量DESTDIR指定的目录下如果要迁移库在windows系统中可以将它的.dll文件复制到PATH变量中给出的合适目录下 7.3 框架与组件 在现代编程技术中代码复用具有最高优先级框架是一个通用类与约定的集合其目的是提高设计的一致性框架一般都具有文档丰富的公共APIAPI是库中公共函数、类和接口的描述为了实现框架可以采取设计模式 Qt是许多开源的面向对象框架中的一种它提供一组可复用的组件用于创建跨平台的应用  7.4 设计模式 设计模式可用于许多不同场合其中 的大多数都描述如何根据职责来区分代码这些模式被分成 三种 类别创建模式、结构模式、行为模式  序列化器模式QTextStream 和 QDataStream序列化器是一种只负责读取或者写入对象的对象Qt的QTextStream序列化器用于读写人可读的文件而QDataStream序列化器用于读写结构化的二进制数据这些类用 序列化模式 实现的被用于C和Qt中序列化器模式的思想是将I/O代码与类本身分开 反模式软件设计反模式:输入杂乱、接口膨胀、竞争风险面向对象设计反模式循环依赖性、“上帝”对象具有太多信息或者太多责任的对象编程反模式难以编码、魔幻数字、魔幻字符串方法学反模式复制--粘贴编程、一切从头开始  第8章  QObjectQApplication信号和槽 QObject 是Qt库中许多重要的类的基类如QEventQApplicationQLayout和QWIDget一个QObject可以有一个父对象和一些子对象这是组合模式的另一种实现方式它可以使用信号和槽即观察者模式的一种实现与其他QObject通信 QObject没有公有的复制函数或复制赋值运算符向下到QObject类定义的结尾处有一个宏Q_DISABLE_COPY(QObject)它显式地确保任何QObject都不能被复制这种不带复制构造函数策略的一个直接后果就是永远无法通过值传递方式向函数传递QObject  每个QObject都可以有至多一个父QObject且可以拥有任意数量的子QObject每个QObject都将指向各个子对象的指针存放在一个QObjectList中  每个QObject父对象都会管理自己的子对象在调用QObject的析构函数时会自动销毁该对象的子对象子对象列表会在各个QObject对象之间建立一种双向的关联每个父对象都知道它的子对象的地址每个子对象都知道其父对象的地址 给某个对象设置父对象将会隐含地把此对象添加到父对象的子对象列表之中重父化把A对象设置B对象为父对象会把A对象指针添加到B的子列表中如果再把A对象设置C对象为父对象A的指针会从B的子列表中删除然后添加到C的子列表中 不应将父对象和基类混为一谈父--子关系是为了描述对象运行时的约束和管理关系基类派生关系是编译时各个类进行判定的一种静态关系  没有父对象的QObject应当在程序栈区中进行定义哪些有父对象的QObject则应当在堆区动态创建出来 8.1 值和对象 C类型可以分成两类值类型和对象类型 值类型的例子有Anything*intcharQStringQDate 和 QVariantQVariant是一种特殊的联合体类型可保存所有可复制的内置类型和编程人员定义的类型QVariant已支持的类型QListQImageQStringQMapQHash类型带有公有默认构造函数、复制构造函数和复制赋值运算符的任何类都是值类型的QObject 的设计人员毫不犹豫地采用了“无复制”策略该方法就是将赋值运算符与复制构造函数设置为private类型 在栈区创建 QList、QString、QHash、QImage或者其他 与 QVariant相关类型Qt为你完成引用计数和内存管理 8.2 组合模式父对象和子对象 复合对象是包含可以包含子对象的类组件对象是可以拥有一个父对象的类许多Qt类都用到了组合模式QObject、QWIDget、QTreeWidgetItem、QDomNode、QHelpContentItem和QResource在任何基于树的结构体中都可以找到组合模式 每个QObject都可以有不限数量的QObject子对象这些子对象的地址会存放在一个特殊的QObject指针容器内子对象在该列表中的出现次序是它们在添加到该列表中时的次序QObject还提供两个名称为findChildren()的重载递归函数每个都会返回一个满足特定条件的子对象列表 8.3 QApplication和事件循环 观察者模式当任意数据模型对象发生状态改变时就需要一种间接的方式来提醒观察者观察者就是一些正在监听状态变化事件的对象 Qt的QEvent类封装了底层事件的概念QEvent类是若干特定的事件类的基类QEvent对象可以由窗口系统创建以响应用户的动作事件循环是一个程序结构它能够将事件划分优先级排队并分派给一些对象事件循环通常会一直运行直到遇到某个终止事件QApplication::exec()函数应用程序的这个工作部分开始于该函数的调用终止于该函数的返回 事件可认为是低级消息目标是某个特定的对象信号可以认为是高级消息很可能会连接到许多槽上只有在事件循环信号才发送到槽上这里的信号是指对事件进行封装的信号 8.4  Q_OBJECT  QObject 支持一些普通C对象通常所没有的特性信号和槽元对象、元属性、元方法qobject_cast 编写C代码和qmake工程文件时应该遵守的一些指导原则每个类的定义都应该放在各自对应的.h文件中每个类的实现都应当放在相应的.cpp文件中为避免头文件的多次包含头文件应该封装起来每个.cpp源文件都应当列举在工程文件的SOURCES变量中每个头文件都应当列举在.pro工程文件的HEADERS变量中Q_OBJECT宏必须出现在每个QObject派生类定义的头文件中 每个Q_OBJECT宏都会产生代码需要使用元编译器moc进行预处理QObject类应该是其基类列表中的第一个基类 8.5 信号和槽 信号是在类定义中给出的类似于void函数声明的一种消息它有参数列表却没有函数体信号是一个类的接口的一部分它看起来像函数但不用同样的方式进行调用---它被此类的对象发射 槽通常是一个void成员函数它可以像普通的成员函数一样进行调用或者可以由QMetaObject系统进行间接调用  一个对象的信号可以与一个或多个对象的槽相连接前提是这些对象存在并且参数列表从信号到槽都是赋值兼容的
http://www.w-s-a.com/news/849117/

相关文章:

  • 凌云县 城市建设 网站西安市建网站
  • 织梦xml网站地图公众号公众平台
  • 长春省妇幼网站做四维学校网站系统破解版
  • 安阳免费搭建自己的网站个人网站做商城会怎样
  • 网站建设专家公司排行网站举报有奖平台
  • 程序员不是做网站的公司装修效果全景图
  • 桥东区住房和建设局网站怎么做网上问卷
  • 做期货要看哪些网站伪装的福祉 wordpress
  • 做网站需要多少费用网站建设需要懂什么语言
  • 网站手机端做app开发商城设计方案
  • 在建设厅网站上查询注销建造师查域名是否注册
  • 企业网站推广方案策划公司网站在国外打开很慢使用cdn好还是国外租用服务器好
  • 龙华o2o网站建设百度不收录什么网站吗
  • 模板搭建网站百度信息流推广
  • 移动端网站制作模板自己做的网站点击赚钱
  • 网站站长如何赚钱wordpress抓取别人网站
  • 做网站媒体专门做产品定制的网站
  • 公司企业网站建设步骤免费asp网站模板
  • 台州企业网站搭建价格做留言的网站
  • 西安网站建设q.479185700強高端网站设计定制公司
  • 网站设计是平面设计吗音频文件放到网站空间里生成链接怎么做
  • seo是对网站进行什么优化可以在哪些网站做翻译兼职
  • 南宁seo网站推广服务网站建设客户分析
  • 网站属于什么公司甜品售卖网站网页设计
  • 如何在宝塔中安装wordpressseo1888网站建设
  • 网站系统cms湖南平台网站建设制作
  • 美团网站怎么做未备案网站加速
  • 通用cms网站wordpress可以商用
  • 阳江网络问政平台 周报济南seo公司案例
  • 重庆聚百思网站开发网络市场调研