因为开发环境不能联网,开发中用到有用的知识就记在word稳定中,不知不觉就记载了几十页,为避免笔记丢失,现在就一点点忘博客上搬,方便日后回顾!

  ------------------------------------------

  一,xml文档的生成和解析

    1,Dom方式:

      xml首行说明类 QDomProcessingLnstruction类

      元素对应QDomElement类

      属性对应QDomAttr类

      文本内容对应QDomText类

      所有Dom节点,比如说明,元素,属性和文本,都使用QDomNode来表示

      文档本身是QDomDocument类表示

    2,手写xml例子:  

      QString filename = QFileDialog::getSaveFileName(this,"Save","","*.xml”);

      QFile file(filename);

      if(!file.open(QIODevice::WriteOnly | QIODevice::Text) {return;}

      QDomDocument document;

      QString strHeader("version=\"1.0"\ encoding=\"UTF-8\"");

      QDomElement root_elem = document.createElement("item");

      root_elem.setAttribute("id",1);

      document.appendChild(root_elem);

      QDomElement item1 = document.createElement("item1");

      item1.setAttribute("item1",1);

       

      QDomElement item2 = document.createElement("item2");

      item2.setAttribute("item2",2);

      root_elem.appendChild(item2);

      

      QTextStream out(&file);

      document.save(out,3);

      file.close();

    3,Qt中xml流的使用:读QXmlStreamWriter, 写QXmlStreamReader

  

  二,QPainter和QPaintDevice类学习

    1,QPainter可以在任何QPaintDevice的子类上面进行绘画,QWidget,QPixmap,QImage,QPicture等,但是没有QMainwidget

    2,关于QPainter类中bounding()和paint()重写,设置绘制范围大小。paint()函数在绘制,重绘,窗口最大化最小化时都会调用

    3,QPen类,QBrush类运用

    4,QPixmap类,QBitmap类,QBitmap类集成自QPixmap,QDialog类是QMainWindow类和QWidget类的父类。

    5,渐变相关类:QGradient

      三个子类:QLinearGradient 直线渐变     QRadialGradient 辐射渐变  QConicalGradient  角度渐变

    6,Qt provides four classes for hangding image data:QImage,QPixmap,QBitmap and QPicture. 四种绘图设备:QBitmap(位图,色深(0或1)为1)是继承自QPixmap,    QPicture是以二进制保存图片

    7,paintEvent(QPaintEvent*)函数会在多种情况下,被其他函数自动调用,比如:update(),repaint()等

    8,QPainterPath类

    9,自定义类继承自QGraphicsItem类时,要重写paint()和boundingRect()类

    10,paintEvent()系统调用

  三,Qt中的委托

    1,QStyledItemDelegate和ItemDelegate都是继承自QAbstractItemDelegate,除了需要进行绘制的部分,这两个类的代码基本相同

    2,QStyleItemDelegate 需要重写的函数:

        createEditor()函数创建特定的编辑控件

        setEditorData()函数编辑控件设定初始数据

        setModeldata()函数在编辑完成后将数据写入Model

        updateEditorGrometry()函数管理编辑控件的位置

      

Qt开发中的实用笔记一--xml,Qpainter,Delegate:的更多相关文章

  1. Qt开发中的实用笔记三--关于各种类的零碎知识点:

    1,QUuid()创建唯一标识码,在创建数据库实体ID和链接数据库QSqlDatabase时非常方便 2,QScrollArea与QScrollBar,如果是要在widget中添加窗口滑动QScrol ...

  2. Qt开发中的实用笔记二--中文转码问题和string转换问题:

    一,中文乱码转码问题 1,转码三句话:window下默认是GBK格式,linux下默认是UTF-8,看情况转换UTF-8/GBK QTextCodec::setCodecForTr(QTextCode ...

  3. Web 开发中很实用的10个效果【附源码下载】

    在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...

  4. 网站开发中很实用的 HTML5 & jQuery 插件

    这篇文章挑选了15款在网站开发中很实用的 HTML5 & jQuery 插件,如果你正在寻找能优化网站,使其更具创造力和视觉冲击,那么本文正是你需要的.这些优秀的 jQuery 插件能为你的网 ...

  5. Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构

    分享两篇Win 10应用开发的XML文档结构:Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构. Win 10 开发中Adapt ...

  6. 实际开发中,实用的辅助iOS开发的工具

    就目前所知,开发iOS绝大部分都是用Xcode,除此工具之外,还有几个好用的可以辅助实际开发中遇到的问题,拥有这种辅助开发技能,在工作中,甚至是以后的面试中,都可能会有不小的帮助. 下面推荐三个实用的 ...

  7. Web 开发中很实用的10个效果

    在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...

  8. qt 1 qt开发中的窗口设计

    一个简单的qt界面 相应代码如下: setWindowTitle(tr("Sotware"));//设置窗体标题 ui->tabWidget->removeTab(); ...

  9. java web开发中的奇葩事web.xml中context-param中的注释

    同事提交了代码.结果除同事之外,其他人全部编译报错.报错说web.xml中配置的一个bean 没有定义.按照报错提示,各种找,无果. 由于代码全部都是提交到svn主干,之前也没有做过备份,只能一步一步 ...

随机推荐

  1. pushState与ajax实现无刷新加载

    一.JS代码: $(document).ready(function() { getContent();//初始化页面 $("nav a").click(function() { ...

  2. 即时聊天IM之二 openfire 整合现有系统用户

    合肥程序员群:49313181.    合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q  Q:408365330     E-Mail:egojit@qq.com  综述: ...

  3. memset 究竟在做什么?

    我要 一字节一字节 地 memory set

  4. GET和POST请求

    GET与POST请求 简介 GET请求解释及语法格式 POST请求简介及语法 GET请求代码 POST请求代码 GET请求解释及语法格式: 网络请求默认是get 网络请求有很多种:GET查 POST改 ...

  5. WebStorm 有哪些过人之处?

    作者:方应杭链接:https://www.zhihu.com/question/20936155/answer/16654794来源:知乎著作权归作者所有,转载请联系作者获得授权. 先说缺点吧: 常驻 ...

  6. EXT学习之——Extjs 文本框 TextField 添加点击(onclick)事件方法

    { xtype:'textfield', listeners: { render: function(p) { // Append the Panel to the click handler's a ...

  7. core--线程状态

    线程的状态在我看来就只有两种:1运行,2休眠.这两种状态的切换是如何实现的呢? Sleep(毫秒) CreateThread时传入CREATE_SUSPENDED标识 SuspendThread(ha ...

  8. c# datatable list 相互转换

    /*Converts List To DataTable*/ public static DataTable ToDataTable<TSource>(IList<TSource&g ...

  9. lintcode : 平衡二叉树

    题目 平衡二叉树 给定一个二叉树,确定它是高度平衡的.对于这个问题,一棵高度平衡的二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过1. 样例 给出二叉树 A={3,9,20,#,#,1 ...

  10. 《Entity Framework 6 Recipes》中文翻译——第十章EntityFramework存储过程处理(八)

    将插入.更新和删除操作映射到存储过程 问题 您想在存储过程中映射插入.更新和删除操作. 解决方案 下图所示的运动员Athlete实体模型.底层数据库有一张运动员Athlete表.您想使用存储过程进行实 ...