QT实现类似QQ截图功能(二):画箭头

这部分只讲在截图完成之后,想要给图片加上箭头指向等等功能。
给图片配文字说明等等代码请查看
http://blog.csdn.net/u011915578/article/details/46739069

做到的效果如下:截图编辑1

下面是画箭头的代码:
void QSLabel::drawArrow(QPoint startPoint, QPoint endPoint, QPainter &p)

{

double par = 15.0;//箭头部分三角形的腰长
double slopy = atan2((endPoint.y() - startPoint.y()), (endPoint.x() - startPoint.x()));
double cosy = cos(slopy);
double siny = sin(slopy);
QPoint point1 = QPoint(endPoint.x() + int(-par*cosy - (par / 2.0*siny)), endPoint.y() + int(-par*siny + (par / 2.0*cosy)));
QPoint point2 = QPoint(endPoint.x() + int(-par*cosy + (par / 2.0*siny)), endPoint.y() - int(par / 2.0*cosy + par*siny));
QPoint points[3] = { endPoint, point1, point2 };
p.setRenderHint(QPainter::Antialiasing, true);//消锯齿
QPen drawTrianglePen;//创建画笔
drawTrianglePen.setColor(Qt::red);
drawTrianglePen.setWidth(1);
p.setPen(drawTrianglePen);
p.drawPolygon(points, 3);//绘制箭头部分
int offsetX = int(par*siny / 3);
int offsetY = int(par*cosy / 3);
QPoint point3, point4;
point3 = QPoint(endPoint.x() + int(-par*cosy - (par / 2.0*siny)) + offsetX, endPoint.y() + int(-par*siny + (par / 2.0*cosy)) - offsetY);
point4 = QPoint(endPoint.x() + int(-par*cosy + (par / 2.0*siny) - offsetX), endPoint.y() - int(par / 2.0*cosy + par*siny) + offsetY);
QPoint arrowBodyPoints[3] = { startPoint, point3, point4 };
p.drawPolygon(arrowBodyPoints, 3);//绘制箭身部分

}

///完

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
使用Qt完成类似QQ功能的项目可以通过以下步骤实现: 第一步是界面设计。可以使用Qt形界面设计器来设计各个界面,包括登录界面、聊天窗口、好友列表等界面。可以选择合适的控件布局和样式,使界面看起来美观且易于操作。 第二步是实现登录功能。可以使用Qt提供的网络模块来进行网络通信,使用Socket套接字与服务器进行连接,并发送登录请求。可以接收服务器返回的登录结果,并根据结果进行相应的处理。 第三步是好友列表功能。可以使用Qt提供的视控件,例如QListWidget来展示好友列表。可以根据登录成功后从服务器获取的好友列表进行展示,并在用户进行相关操作时,如双击好友头像开始聊天,可以根据用户的选择进行相应的处理。 第四步是聊天功能。可以使用Qt提供的输入框和聊天窗口控件来实现聊天功能。在接收到好友发送的消息时,可以在聊天窗口中显示,并提供发送消息的功能,可以通过Socket套接字将消息发送给对应的好友。 第五步是其他附加功能实现。例如群聊、发送文件、好友状态显示等功能。可以根据需要使用Qt提供的相关控件和功能实现这些功能。 最后,需要测试和调试整个项目,确保功能正常运行,并进行性能优化和界面美化,以提升用户体验。 总的来说,使用Qt完成类似QQ功能的项目需要设计界面、实现登录功能、好友列表功能、聊天功能以及其他附加功能,并经过测试和调试,最终实现一个功能完善、界面美观、使用方便的QQ项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

战神无悔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值