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

qt中函数paintEvent(QPaintEvent*)是不是被系统自动调用的,第1张

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

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

1QPainter类

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

此类中常用的函数有:

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

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

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

2QPainterPath类

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

3QColor类

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

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

12 在自定义控件的 构造函数中加入如下一段断码this-setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint); //隐藏对话框标题栏QPainterPath path;QRectF rect = QRectF(0,0,100,100); //两点确定矩形范围,一般为控件大小

12 在自定义控件的 构造函数中加入如下一段断码this-setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint); //隐藏对话框标题栏QPainterPath path;QRectF rect = QRectF(0,0,100,100); //两点确定矩形范围,一般为控件大小,这样可以切割四个圆角,也可以调整大小,调整圆角个数

QPainterPath提供这样一个函数来检测两个path的交集,但是这个函数无法取得一条直线段与一个封闭path的交线。因为直线段没有fill area。找了一下也没有其他函数来完成这个事情。

QPainterPath intersected ( const QPainterPath & p ) const

于是只有自己写,我这里给出的是一个比较偷懒的算法,尽量利用qt提供的函数来做,效率很低,但是对于大多应用来说也没问题。

算法就是对线段逐点检测与contour的相交了,非常简单非常简单。

用起来速度也蛮快,对付现在这个苦逼项目完全OK~~

返回的path就是线段与任意封闭path的交线了,那么交点自然就很容易取得了。

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

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

1QPainter类

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

此类中常用的函数有:

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

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

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

2QPainterPath类

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

3QColor类

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

以上就是关于qt中函数paintEvent(QPaintEvent*)是不是被系统自动调用的全部的内容,包括:qt中函数paintEvent(QPaintEvent*)是不是被系统自动调用的、如何在Qt中绘制分割界面的矩形框或圆角矩形框、Qt 怎么画一个圆角矩形对话框,或者圆角控件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/10079257.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存