Qt实现带有映射关系的进度条

1.编写继承自widget的新类,这里我们定义为colorWidget;

 

2.在colorWidget中添加私有变量QVector<QRect> m_rects,用于存放进度条的不同区间(矩形),这里为了省事,利用接口函数定义数量,

然后对widget空间作均匀划分;

 

3.重写paintEvent函数,在其中循环绘制m_rects所有矩形各自空间的颜色或其他;

 

4.重写mousePressEvent函数,判断鼠标点位置是否在对应的rect区间内,由此判定点击反馈,从而通过信号槽或者回调将具体位置传输到空间所在上层界面类中

(注:此处有一定误区,如果上层界面类中包含菜单栏或者工具栏,会影响内部坐标判定,建议去掉菜单栏和工具栏,此处应该为QT内核中某些逻辑错误)

 

 

图1:结果示例(点击绿色传出其index为3)

 

转载于:https://www.cnblogs.com/fayevalentine/p/10079890.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值