drawRoundRect () 方法

看到一个网友给别人帖子的回复,转帖过来,好长时间没有研究flex了,感觉有点帮助

 

drawRoundRect () 方法

protected function drawRoundRect(x:Number, y:Number, width:Number, height:Number, cornerRadius:Object = null, color:Object = null, alpha:Object = null, gradientMatrix:Matrix = null, gradientType:String = "linear", gradientRatios:Array = null, hole:Object = null):void


通过编程方式在此外观的 Graphics 对象中绘制一个矩形。

矩形可以有圆角。其边缘使用 Graphics 对象的当前线条样式。可以使用纯色填充、渐变填充或无填充。纯色填充可以使用 Alpha 透明度。渐变填充可以为线性渐变或放射状渐变。可在沿着渐变的指定点上至多指定 15 个颜色和 Alpha 值,可为渐变指定旋转角度和转换矩阵。最后,该矩形可具有从其上切去的圆角矩形洞。

该通用矩形绘制例程被很多外观所使用。该例程调用 drawRect() 或 drawRoundRect() 方法(在 flash.display.Graphics 类中)在此外观的 Graphics 对象中进行绘制。


参数  x:Number — 此外观中矩形左上角的水平位置。  
  
y:Number — 此外观中矩形左上角的垂直位置。  
  
width:Number — 矩形的宽度(以像素为单位)。  
  
height:Number — 矩形的高度(以像素为单位)。  
  
cornerRadius:Object (default = null) — 矩形的角半径。可以是 null、Number 或 Object。如果为 null,则表示该角应为方形而不是弧形。如果为 Number,则为所有四个角指定相同半径(以像素为单位)。如果为 Object,则应具有 tl、tr、bl 和 br 属性,这些属性值是用于指定左上角、右上角、左下角、右下角的半径的 Number(以像素为单位)。例如,您可以传递简单 Object,如 { tl: 5, tr: 5, bl: 0, br: 0 }。默认值为 null(方形角)。  
  
color:Object (default = null) — 填充的 RGB 颜色。可以是 null、uint 或 Array。如果为 null,则不为矩形填充颜色。如果为 uint,则会指定一个 RGB 填充色。例如,传递 0xFF0000 可填充红色。如果为 Array,则应包含用于指定渐变颜色的 uint。例如,传递 [ 0xFF0000, 0xFFFF00, 0x0000FF ] 可填充红-黄-蓝渐变。在渐变中最多可以指定 15 种颜色。默认值为 null(无填充颜色)。  
  
alpha:Object (default = null) — 用于填充的 Alpha 值。可以是 null、Number 或 Array。如果 color 为空,则忽略此参数。如果 color 是用于指定 RGB 填充颜色的 uint,则 alpha 应该是用于指定填充透明度的 Number,其中 0.0 表示完全透明,1.0 表示完全不透明。在本例中,您还可以通过传递空值而不是 1.0 来指定完全不透明。如果 color 是用于指定渐变颜色的 Array,则 alpha 应该是长度相同的数字 Array,用于为渐变指定相应的 alpha 值。在本例中,默认值为 null(完全不透明)。  
  
gradientMatrix:Matrix (default = null) — 用于渐变填充的 Matrix 对象。可使用实用程序方法 horizontalGradientMatrix()、verticalGradientMatrix() 和 rotatedGradientMatrix() 来创建此参数的值。  
  
gradientType:String (default = "linear") — 渐变填充的类型。可能的值为 GradientType.LINEAR 或 GradientType.RADIAL。(GradientType 类位于 flash.display 包中。)  
  
gradientRatios:Array (default = null) — (可选默认值为 [0,255])指定颜色分布。条目数必须与在 color 参数中定义的颜色数匹配。各值均定义 100% 采样的颜色所在位置的宽度百分比。值 0 表示渐变框中的左侧位置,255 表示渐变框中的右侧位置。  
  
hole:Object (default = null) — (可选)应从另一个实心填充的圆角矩形 { x: #, y: #, w: #, h: #, r: # 或 { br: #, bl: #, tl: #, tr: # } } 中央凸出的圆角矩形孔

`QPainter`是Qt框架中用于2D图形绘制的一个类。通过`QPainter`对象,你可以在`QWidget`或者`QPixmap`等绘图设备上绘制各种图形。`drawRoundRect`方法是`QPainter`提供的一个绘制圆角矩形的方法。 使用`QPainter`的`drawRoundRect`方法绘制透明圆角矩形,需要结合透明度相关的知识。在Qt中,你可以通过设置画笔的填充颜色和画刷(`QBrush`)来实现透明效果。比如,你可以创建一个`QBrush`对象,其颜色设置为带有透明度的(例如,使用`Qt::white`并设置透明度),然后将其应用到`QPainter`对象上。此外,需要确保在绘制之前,窗口或绘图设备支持透明度。 以下是一个简单的例子,展示如何使用`QPainter`绘制一个具有透明效果的圆角矩形: ```cpp void Widget::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); // 开启抗锯齿 // 创建一个半透明的画刷 QBrush brush(QColor(255, 255, 255, 127)); // 最后一个参数是透明度(0-255) painter.setBrush(brush); // 设置画刷 painter.setPen(Qt::NoPen); // 不绘制边框 // 绘制圆角矩形 QRectF rect(50, 50, 200, 100); // 定义矩形的位置和大小 QRectF ellipse(50, 50, 200, 100); // 定义椭圆的外接矩形,用于控制圆角大小 painter.drawRoundRect(rect, 50, 50); // 绘制圆角矩形,最后两个参数控制圆角的水平和垂直半径 } ``` 在上述代码中,我们首先开启抗锯齿渲染提示,然后创建了一个带有透明度的颜色作为画刷,并将其设置给`QPainter`对象。接着,我们定义了一个矩形,并使用`drawRoundRect`方法来绘制圆角矩形。这里的`ellipse`参数是一个`QRectF`对象,它定义了圆角的大小,其值为矩形宽高的一半时,可以得到较为均匀的圆角效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值