一、前言

做过安防视频监控的同学都清楚,在视频监控系统软件上都可以看到一个云台控制区域,可以对球机进行下下左右等八个方位的运动控制,还可以进行复位,一般都是美工作图好,然后贴图的形式加入到软件中,好处是程序简单,界面美工,主要取决于美工的美图能力,缺点是对于各种分辨率的适应性稍微差点,需要不同的图片切图贴图,除非默认做好的是大图自适应看不出差别,可能大部分人所在的公司都是小公司,一般美工人员比较少甚至没有,都需要程序员一人负责,甚至一开始就要考虑到各种分辨率的应用场景以及后期可能的换肤换色等。
之前做过很多自定义控件,大部分都采用了qpainter的形式绘制,有个好处就是自适应任意分辨率,所以思考着这个云台控制仪表盘也采用纯painter绘制的形式,据说纯painter绘制还可以轻松移植到qml中,这又坚定了我用qpainter绘制的决心。所谓心中有坐标系,万物皆painter。
观察云台仪表盘下来,基本上就这几部分组成,圆形底盘,八个角,中间部分按钮,整个的控件的难点就在于八个角的定位,中间部分很好定位,而且八个角不是绝对的位置,都是相对于界面的宽高按照等比例自适应排列的。八个角的鼠标按下要做出对应的反应,发送出对应型号,网上大部分人都是切图或者放置label或者按钮来贴图实现,绑定事件过滤器过滤鼠标按下然后再发出信号。我这里为了提升逼格,直接采用位置坐标计算法。

二、实现的功能

  • 1:可设置背景颜色
  • 2:可设置基准颜色
  • 3:可设置边框颜色
  • 4:可设置文本颜色
  • 5:可识别每个角度+中间 鼠

Qt/C++编写自定义控件10-云台仪表盘相关推荐

  1. Qt/C++编写自定义控件44-天气仪表盘

    一.前言 天气仪表盘控件是所有控件中唯一一个使用了svg矢量图的控件,各种天气图标采用的矢量图,颜色变换采用动态载入svg的内容更改生成的,其实也可以采用图形字体来做,本次控件为了熟悉下svg在Qt中 ...

  2. qt获取当前系统音量值_Qt编写自定义控件50-迷你仪表盘

    一.前言 这个控件取名叫迷你仪表盘,是以为该控件可以缩小到很小很小的区域显示,非常适合小面积区域展示仪表数据使用,还可以手动触摸调节进度,是我个人觉得最漂亮小巧的一个控件.初次看到类似的控件是在一个音 ...

  3. qt动画效果_Qt编写自定义控件44-天气仪表盘

    一.前言 天气仪表盘控件是所有控件中唯一一个使用了svg矢量图的控件,各种天气图标采用的矢量图,颜色变换采用动态载入svg的内容更改生成的,其实也可以采用图形字体来做,本次控件为了熟悉下svg在Qt中 ...

  4. Qt编写自定义控件4-旋转仪表盘

    前言 旋转仪表盘,一般用在需要触摸调节设置值的场景中,其实Qt本身就提供了QDial控件具有类似的功能,本控件最大的难点不在于绘制刻度和指针等,而在于自动计算当前用户按下处的坐标转换为当前值,这个功能 ...

  5. Qt编写自定义控件44-天气仪表盘

    一.前言 天气仪表盘控件是所有控件中唯一一个使用了svg矢量图的控件,各种天气图标采用的矢量图,颜色变换采用动态载入svg的内容更改生成的,其实也可以采用图形字体来做,本次控件为了熟悉下svg在Qt中 ...

  6. Qt编写自定义控件3-速度仪表盘

    前言 速度仪表盘,写作之初的本意是用来展示当前测试的网速用的,三色圆环+数码管显示当前速度,Qt自带了数码管控件QLCDNumber,直接集成即可,同时还带有动画功能,其实也可以用在汽车+工业领域等, ...

  7. qt double去掉多余的0_Qt编写自定义控件12-进度仪表盘

    前言 进度仪表盘主要应用场景是标识一个任务进度完成的状况等,可以自由的设置范围值和当前值,为了美观还提供了四种指示器(圆形指示器/指针指示器/圆角指针指示器/三角形指示器),各种颜色都可以设置,其中的 ...

  8. Qt编写自定义控件1-汽车仪表盘

    一.前言 汽车仪表盘几乎是qt写仪表盘控件中最常见的,一般来说先要求美工做好设计图,然后设计效果图给到程序员,由程序员根据效果来实现,主要靠贴图,这种方法有个好处就是做出来的效果比较逼真,和真实效果图 ...

  9. Qt编写自定义控件21-圆弧仪表盘

    一.前言 圆弧仪表盘在整个自定义控件大全中也稍微遇到了技术难点,比如背景透明,如果采用以前画圆形画扇形的方式绘制,肯定很难形成背景透明,需要用到切割,最后换了一种绘制方法,采用绘制圆弧的方式,即使用d ...

最新文章

  1. 解决 Could not autowire. No beans of ‘UserDao‘ type found 问题
  2. 我的Java开发学习之旅------gt;Java经典排序算法之希尔排序
  3. 一篇关于Maven项目的jar包Shell启动脚本
  4. 【转】CANOPEN总线的相关问题点整理分享*****
  5. 余承东谈华为6G:正在研发,还需要10年时间
  6. 人到中年生活不易,特别是工作压力很大
  7. OTSU大津法对图像二值化
  8. AAC AMR WAV MP3 采样率
  9. PCM格式音频数据的读取
  10. C++网易云课堂开发工程师-操作符重载
  11. 【人类简史】从动物到上帝 [以色列-尤瓦尔 · 赫拉利](阅读笔记)
  12. HP台式机清灰后无法启动的解决办法
  13. linux文件系统 ubi,UBI 文件系统移植 sys 设备信息
  14. 进制转换(十进制转二进制)
  15. laravel集成Telegram Bot 机器人
  16. 金融科技大数据产品推荐:Hyperchain--国产自主可控的企业级联盟区块链平台
  17. Oracle报“无监听程序”解决方案
  18. FreeBSD 图解安装--转自panabit官网
  19. Endnote X4 导入enw文件设置方法
  20. 流媒体技术基础-摄像头接口与标准

热门文章

  1. h5倒计时弹窗_利用H5制作一个倒计时demo的实例教程
  2. 树--树的轴对称翻转
  3. 百度AI全面开放EasyDL开启AI普及化时代;讯飞翻译机2.0发布:支持34种语言;华为开发能读懂人类情绪的AI技术
  4. 蘑菇街2019届校招-测试类笔试题
  5. 丰田汽车计划在2013年为其丰田和雷克萨斯汽车品牌生产879万辆汽车
  6. 软件测试工作流程总结
  7. R语言使用sqrt函数计算平方根、开平方根
  8. (实验4)单片机,STM32F4学习笔记,代码讲解【串口实验】【正点原子】【原创】
  9. android向系统日历添加日程事件(实现闹铃效果,且在app被杀仍能完成)
  10. 小米Android岗的面试之旅,幸斩Offer