Qt画线条

在Qt Designer中设计地图,通过连接按钮点显示地图路线。遇到的问题是线条有锯齿,尝试通过重载paintEvent事件解决。官方示例中展示了平滑线条的实现,但理解尚有困难。提升QFrame类并自定义头文件promote.h,以实现线条绘制功能。
摘要由CSDN通过智能技术生成

    情况是这样的,现在设计一个地图,地图上的点(假设为pushButton)在Qt Designer中进行勾勒,都放在一个frame里面,然后将一些地图上联通的点使用直线连接起来.嗯....其实这是图的基本演示.....如果你没看明白我在说什么,那就看下面的图吧




上面的线条有锯齿.....官方有个demo,看截图



里面的线条十分优美....不过在下才疏学浅....还没吃透这个demo....先看看图1(就是在下弄的那个有锯齿的...)主要就是重载了paintEvent事件


首先,静态图是在designer里面勾勒的,就是没有直线的图(有人喜欢纯码代码来构建UI.....不过我属于比较懒的人.....就直接用designer了....)


在Qt Designer里面有一个和纯手工子类化大致相同的功能,叫"提升"...来看看怎么使用



重点在提升的类名称,和头文件

提升的类名称是自己将要子类化QFrame的类的名称,头文件是自己要编码的...不是自动生成的...........


我填的分别是Clandscape和promote.h


看看promote.h的内容


----------promote.h-----------------------------------------------

#include <QFrame>
#include <QPainter>
 

class sightSpot;
class Clandscape : public QFrame{
 
friend class Cmainwindow;
private:
    sightSpot *buttons[5];
 
public:
    //constructor and ~constructor
    Clandscape(QWidget *para_parentWidget);
 
protected:

                
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值