WideStudio Programming Guide

| WideStudio Programming Guide | WideStudio Index Table of contents

> ## 控制对象绘图

> 使用以下成员函数，执行对象的绘图控制。

> 控制显示的成员函数 | 功能
> setAbsoluteDraw(Boolean) | 设置是否强制绘图
> draw() | 绘图
> redraw() | 重新绘图
> cdraw() | 递归重新绘图
> clear() | 清除
> update() | 如果属性发生变更，更新绘图

> ### 对象的更新绘图

> 通常，当对象的属性发生变更，或者事件过程运行之后，需要更新绘图。用户也可以强制进行绘图更新。

>     def event_procedure(object):
>       # 属性发生变更
>       object.setProperty("labelString","操作设置");
>       # 更新
>       object.update();
>       return
>     mpfc.WSGFfunctionRegister("event_procedure",event_procedure)

> 仅在对象属性发生变更等需要执行更新处理的时候，执行update函数。

> ### 对象的重新绘图

> 在出现以下情况时，需要让对象重新绘图。
> - 清除绘图(触发事件)
>   通常，使用redraw()清除绘图后，通过触发EXPOSE事件实现对象重新绘图。 如果对象中存在多个子对象，这些子对象也执行重新绘图。因此，在包含 大量对象的应用程序窗口中，通过redraw()重新绘图的性能不高。

>            object.redraw();

> - 绘图(更新)
>   使用draw()前设置强制绘图标志，可以在不触发EXPOSE事件的情况下， 强制对象重新绘图。具体步骤如下所示。

>            object.setAbsoluteDraw(mpfc.True);
>            object.draw();

> - 绘图(部分更新)
>   通常，在不设置强制绘图标志的情况下使用draw()。 此时，只对需要更新绘图的部分进行绘图，使得性能得以提高。

>            object.draw();

> - 清除绘图(不触发事件)
>   通过clear()和draw()可以不触发EXPOSE事件实现对象重新绘图。 如果对象中存在多个子对象，这些子对象不会执行重新绘图。通过 清除绘图(触发事件)模式实现这些子对象的重新绘图。

>            object.clear();
>            object.setAbsoluteDraw(mpfc.True);
>            object.draw();

Document Release 3.70 for WideStudio ver 3.70, Feb 2004

WideStudio documents index | Table of contents

Copyright(C) T. Hirabayashi, 2000-2004 | Last modified: Feb 25, 2004