• 3782阅读
  • 1回复

关于绘画问题的学习指引----新手应该看的 [复制链接]

上一主题 下一主题
离线vc2009
 
只看楼主 倒序阅读 楼主  发表于: 2009-07-26
本人也是个Qt的新手,最近,一直在学习绘画方面的知识和练习。新手最为困惑的是:
1、Qt绘画的机制是怎么样的?
2、如何在屏幕上显示要画的图象?
3、绘画的坐标系统是怎么样的?
    本人总结一下心得,请大家指导。
1、绘画的机制:
       Qt的绘画系统能够使用相同的API在屏幕和打印设备上绘画(painting),主要通过QPainter,QPaintDevice,和QPaintEngine类。
       QPainter类用于执行画的操作(drawing operations),QPaintDevice类是可以使用QPainter绘画的二维空间的一个抽象。QPaintEngine类提供了可以在不同设备上绘画的接口。QPaintEngine类由QPainter类和QPaintDevice类内部使用,对应用程序开发者是隐藏的,除非他们创建自己的设备类型。
       程序员需要做的是:1、创建绘画设备(常用的有QWidget,QImage,QPixmap,QPicture,QPrinter等)。2、创建QPainter对象在相应的设备上执行具体的绘画,就可以了。
      注意:对于QWidget设备,只能在paintEvent函数中实现具体的绘画,否则,不会显示任何的东西。

2、显示的机制
      不是每个部件都是可以在屏幕上来显示的,对于那些可以在屏幕上显示的窗口部件,只有它的父部件被显示的时候,所有的子部件才会被显示。窗口部件QWidget中的绘画内容,总是通过刷新事件来维护,其他的部件就可以自动维护。

3、所有窗口部件的坐标总是以左顶角为(0,0),X轴向右伸展,Y轴向下伸展。这是指的逻辑坐标,但是,它在没有变换之前,和绘画设备的物理坐标是一样的。在打印机或绘图仪上的物理尺寸应该和设备的分辨率有点关系,如一般是在400dpi情况下,象素间距是1/72英寸。
     以上是自己编程的一点体会,供大家参考。希望对象我一样开始学习的人有用就好了。

离线rqzrqh

只看该作者 1楼 发表于: 2009-07-27
不错
快速回复
限100 字节
 
上一个 下一个