qt中函数paintEvent(QPaintEvent*)是不是被系统自动调用的 5

 我来答
百度网友4327fcbb9b
推荐于2017-10-07 · 知道合伙人教育行家
百度网友4327fcbb9b
知道合伙人教育行家
采纳数:26423 获赞数:292071
从师范学校毕业后一直在现在单位工作

向TA提问 私信TA
展开全部

  qt中函数paintEvent(QPaintEvent*)是被系统自动调用。

  paintEvent(QPaintEvent *)函数是QWidget类中的虚函数,用于ui的绘制,会在多种情况下被其他函数自动调用。

  1.QPainter类

  这个类主要提供在窗体或者其他绘图设备上进行绘图的功能,在paintEvent(QPaintEvent *)中使用如下:

  此类中常用的函数有:

  drawXXX()函数,用于绘制图形、文字和路径等;

  fillXXX()函数,用于填充,可在指定区域内进行填充;

  brush()和pen()  笔刷和钢笔的相关操作

  2.QPainterPath类

  这个类为绘图提供容器,主要还是用于描述绘制路径。可以通过函数setFillRule(Qt::WindingFill);来设置填充规则,通过addRect()函数来添加绘制区域。

  

  3.QColor类

  此类提供颜色支持,这里的颜色可以定义四个属性:QColor ( int r, int g, int b, int a = 255 ),即红、绿、蓝和透明度。除此之外,也可以单个设置这四个值,通过类似setAlpha()的函数即可设置,这对设计渐进效果很有帮助。

  

  下面送上一段摘自别人项目中的代码,仅供参考学习。

  

yuantailing
2013-09-17 · TA获得超过2545个赞
知道小有建树答主
回答量:1167
采纳率:92%
帮助的人:655万
展开全部
改变窗口大小、移动窗口、手动调用update、repaint等时候自动调用paintEvent。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
二豆猜9057
2013-09-26
知道答主
回答量:21
采纳率:0%
帮助的人:23.5万
展开全部
基本上对窗口做的任何操作,都会调用的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天蝎神经侠侣
高粉答主

2015-06-13 · 关注我不会让你失望
知道大有可为答主
回答量:7533
采纳率:67%
帮助的人:714万
展开全部
QEvent
qt 的主消息循环QCoreApplication::exec()从消息队列中取出系统事件(system event),将它们翻译
为QEvent,并将其发送到QObject
除了用户操作引发的QEvent,还可以手动发送:QCoreApplication::sendEvent()或postEvent()
注意:QCoreApplication是QApplication的父类
接收到QEvent的QObject会调用它们对应的:***event(),这些函数一般都要被重载。
QEvent 有两个成员变量:一个事件类型和一个是否接收的标志。accept()和ignore()可以设置这个标志。
*******************************************************************************************
QObject::installEventFilter()允许一个对象截获本该发到其它对象的事件。
void QObject::installEventFilter ( QObject * filterObj )
它将一个事件过滤器安装到一个QObject中。事件过滤器接收宿主QObject的所有events,它既可以不接收,也可以将其发送到宿主QObject。事件过滤器本身也是一个QObject,它通过自己的eventFilter() 函数
来接收事件。如果该函数返回true,那么表示该事件已经被处理了,不需要调用默认的事件处理程序。反之,则交给默认事件处理程序处理。一个QObject可以安装多个事件过滤器,但最后安装的那个会最先激活。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式