一、蚂蚁线
摘自互动百科:在图像影像软件中表示选区的动态虚线,因为虚线闪烁的样子像是一群蚂蚁在跑,所以俗称蚂蚁线。在Poshop,After Effect等软件中比较常见。
背景:用过excel的同学都知道,当对单元格进行复制时,单元格周围就会出现一个跑动的矩形框,这个矩形框就被称为蚂蚁线。通过设置蚂蚁线的线型和调整控件有效刷新次数我们可以得到不同的跑动效果,这是一个非常有意思的现象。
二、效果展示
如下图就是蚂蚁线的效果截图,单击单元格时,会绘制一个2个像素宽的外框;当双击某个单元格时,就会产生蚂蚁线,蚂蚁线的线型和跑动速度都可以定制。文末会放出演示代码下载链接。

三、实现
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
if (startPoint != truthPoint && offset > 2)
{
QPolygon polygon;
for ( int i = 4; i <= offset; ++i) //绘制前边偏移的像素
{
if (polygon.size() >= 7)
{
break ;
}
polygon.append(truthPoint - QPoint(i , 0));
}
painter->drawPoints(polygon);
}
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
void QWidgetBackingStore::sendUpdateRequest(QWidget *widget, UpdateTime updateTime)
{
if (!widget)
return ;
switch (updateTime) {
case UpdateLater:
updateRequestSent = true ;
QApplication::postEvent(widget, new QEvent(QEvent::UpdateRequest), Qt::LowEventPriority);
break ;
case UpdateNow: {
QEvent event(QEvent::UpdateRequest);
QApplication::sendEvent(widget, &event);
break ;
}
}
}
|



所有评论(0)