zoukankan      html  css  js  c++  java
  • Qt开发中的实用笔记一--xml,Qpainter,Delegate:

       因为开发环境不能联网,开发中用到有用的知识就记在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()函数管理编辑控件的位置

          

  • 相关阅读:
    vue学习(五) 访问vue内部元素或者方法
    vue学习(四) v-on:事件绑定
    vue学习(三) v-bind指令
    vue学习(二) 三个指令v-cloak v-text v-html
    vue学习(一)初步了解 vue实例
    Restful 接口开发 完整版
    解决exlipse下 springboot 错误:找不到或无法加载主类
    一张图看懂 SQL 的各种 join 用法
    Rest分页接口开发
    浅谈rest風格的接口开发
  • 原文地址:https://www.cnblogs.com/weizhixiang/p/6198795.html
Copyright © 2011-2022 走看看