首页 > 编程知识 正文

Javarepaint怎么无效,qt异常处理机制

时间:2023-05-06 17:29:09 阅读:155418 作者:4020

接口重载函数

使用方法:

1在头文件中定义函数

保护:

voidpaintevent (qpaintevent * event;

直接在CPP中过载

void------:paint event (qpaintevent * )

{

//重载函数体

}

执行条件:即使接口发生变更也会执行

具体地说,变化可能会积累,并不在现有接口变化时立即执行,而是可能合并为只执行一次数次变化。

需要调用函数才能立即执行

详见http://www.cn blogs.com/hnrain ll/archive/2011/05/26/2057758.html。 (lenchin博客总结,谢谢你这么细致的总结。 Len大侠) )。

Qt paintevent事件

一.主要了解几种方法和属性:

1.q构件* qscrollview 33603360 viewport () const

2.voidqwidget :3360 paint event (qpaintevent * ) [虚拟保护]

3.voidqwidget 33603360 repaint (intx,int y,int w,int h,bool erase=TRUE ) [插槽]

4.voidqwidget 33603360更新([插槽]

5.voidqwidget :3360 erase (intx,int y,int w,int h ) ) ) ) ) ) )5) ) ) ) ) 652

6 .启用布尔更新

2 .现在分别详细介绍。

1.q构件* qscrollview 33603360 viewport () const

返回到视图中的视口小部件。 此小部件包含内容窗口组件或要绘制的区域。

2.voidqwidget :3360 paint event (qpaintevent * ) [虚拟保护]

只要需要重新绘制窗口部件,就会调用。 每个显示输出的窗口部件都必须实现它。 此事件处理程序在子类中重新实现,以接收呈现事件。 repaint (或update )的结果。 许多窗口部件在被请求时很容易重绘整个界面,但有些窗口部件只通过绘制请求的区域(QPaintEvent:region ) (如QListView或QCanvas )进行了优化

Qt还可以通过将多个绘制事件合并为一个来提高绘制速度。 update ) )被调用了几次,或者窗口系统发送了几次绘制事件后,Qt会将它们指向相对较大的区域(请参见QRegion:unite ) ) )。) repaint () )不允许这样的优化,所以尽可能地使用update )。

发生绘制事件时,更新区域通常会被清除。 除了以下几个例外,QPaintEvent:erased ()允许您了解此窗口部件是否已被清除。

3.voidqwidget 33603360 repaint (intx,int y,int w,int h,bool erase=TRUE ) [插槽]

立即调用paintEvent ()直接重绘窗口部件。 如果erase为true,则Qt为paintEvent ) )在调用之前清除区域(x,y,w,h ) )。 如果w为负数,则替换为width ()-x;如果h为负数,则替换为height )-y。 如果需要立即重新绘制,建议使用repaint (),例如在动画期间。 在大多数情况下,update ()更好,因为可以使用Qt来优化速度并避免闪烁。 警告:如果在某个函数中调用repaint () (其本身为paintEvent ) ),则可能会看到无线环路。 update ()函数不生成循环。

4.voidqwidget 33603360更新([插槽]

更新窗口部件,并计划Qt返回主事件时处理的呈现事件。 这样可以优化Qt,使其比调用repaint ()更快、更少地闪烁。 调用update (的几次结果通常为paintEvent ) )只需调用一次。 Qt通常在调用paintEvent ()之前清除此窗口部件的区域。 仅当设置了WRepaintNoErase窗口部件标记时才可用。

5.voidqwidget :3360 erase (intx,int y,int w,int h ) ) ) ) ) ) )5) ) ) ) ) 652

清除窗口部件中的指定区域(x、y、w、h )不会触发绘制事件。

如果w为负数,则替换为width ()-x。 如果h为负数,则替换为height ()-y。

子窗口部件不受影响。

6 .启用布尔更新

此属性保存更新是否有效。

如果更新无效,则调用update (和repaint )无效。 如果更新不再有效,将正常处理来自窗口系统的呈现事件。 setUpdatesEnabled ()通常用于小事件中禁用更新,例如避免屏幕在巨大变化期间闪烁。

实例:

setupdatesenabled (假;

bigVisualChanges (;

setupdatesenabled(true;

repaint (;

在setUpdatesEnabled ()中设置属性值(isUpdatesEnabled ) )中获取属性值。

转自作者: Leo Chin来源: http://www.cnblogs.com/hnrainll/

3358 blog.csdn.net/yh _ 1988/article/details/7196481

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。