• 3710阅读
  • 9回复

自己写的一些小控件 [复制链接]

上一主题 下一主题
离线wllw7176
 

图酷模式  只看楼主 倒序阅读 楼主  发表于: 2018-09-04
参照liudianwu 大师的控件demo自己实现的部分控件,有些是高仿刘大师的

][attachment=19450]

[attachment=19450]


所有都是代码绘制,绝大部分代码我自己编写,少部分参照网络上代码

附件: self_widgets_box.rar (5966 K) 下载次数:208
离线liudianwu

只看该作者 1楼 发表于: 2018-09-04
嗯,确实不错,看了下代码,能够参照并应用到这种程度,牛逼!就是觉得算法部分稍微写得复杂了点,个人感觉而已。我大概知道你是谁了!
欢迎关注微信公众号:Qt实战 (各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)QQ:517216493  WX:feiyangqingyun  QQ群:751439350

只看该作者 2楼 发表于: 2018-09-04
回 liudianwu 的帖子
liudianwu:嗯,确实不错,看了下代码,能够参照并应用到这种程度,牛逼!就是觉得算法部分稍微写得复杂了点,个人感觉而已。我大概知道你是谁了![表情]  (2018-09-04 23:23) 

看着界面相似的很有空看下代码
离线wllw7176

只看该作者 3楼 发表于: 2018-09-04
回 liudianwu 的帖子
liudianwu:嗯,确实不错,看了下代码,能够参照并应用到这种程度,牛逼!就是觉得算法部分稍微写得复杂了点,个人感觉而已。我大概知道你是谁了![表情]  (2018-09-04 23:23) 

代码水平肯定不及刘大师了。我也刚学qt不久,我学qt基本上就是照着刘大师开源的东西然后自己琢磨怎么实现。以后还多多赐教
离线liudianwu

只看该作者 4楼 发表于: 2018-09-04
回 wllw7176 的帖子
wllw7176:代码水平肯定不及刘大师了。我也刚学qt不久,我学qt基本上就是照着刘大师开源的东西然后自己琢磨怎么实现。以后还多多赐教 (2018-09-04 23:30) 

写得确实挺不错的,建议后期整理规范起来会更棒!加油!
欢迎关注微信公众号:Qt实战 (各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线核心科技

只看该作者 5楼 发表于: 2018-09-05
非常好,跟刘总的效果差不多了。怎么压缩包文件损坏啊。
离线wllw7176

只看该作者 6楼 发表于: 2018-09-08
回 核心科技 的帖子
核心科技:非常好,跟刘总的效果差不多了。怎么压缩包文件损坏啊。 (2018-09-05 21:50) 

不会吧,重新下载下试试
离线wllw7176

只看该作者 7楼 发表于: 2018-09-09
回 liudianwu 的帖子
liudianwu:嗯,确实不错,看了下代码,能够参照并应用到这种程度,牛逼!就是觉得算法部分稍微写得复杂了点,个人感觉而已。我大概知道你是谁了![表情]  (2018-09-04 23:23) 

刘大师,你的控件里有些反光效果,是代码实现还是贴图实现。如果是代码实现的话能否提供点思路。
离线liudianwu

只看该作者 8楼 发表于: 2018-09-09
回 wllw7176 的帖子
wllw7176:
刘大师,你的控件里有些反光效果,是代码实现还是贴图实现。如果是代码实现的话能否提供点思路。

你说的是汽车仪表盘左上角部分的发光?加了个滑盖。

  1. int radius = 90;
  2.     painter->save();
  3.     painter->setPen(Qt::NoPen);
  4.     QPainterPath smallCircle;
  5.     QPainterPath bigCircle;
  6.     radius -= 1;
  7.     smallCircle.addEllipse(-radius, -radius, radius * 2, radius * 2);
  8.     radius *= 2;
  9.     bigCircle.addEllipse(-radius, -radius + 140, radius * 2, radius * 2);
  10.     //高光的形状为小圆扣掉大圆的部分
  11.     QPainterPath highlight = smallCircle - bigCircle;
  12.     QLinearGradient linearGradient(0, -radius / 2, 0, 0);
  13.     overlayColor.setAlpha(100);
  14.     linearGradient.setColorAt(0.0, overlayColor);
  15.     overlayColor.setAlpha(30);
  16.     linearGradient.setColorAt(1.0, overlayColor);
  17.     painter->setBrush(linearGradient);
  18.     painter->rotate(-20);
  19.     painter->drawPath(highlight);
  20.     painter->restore();

欢迎关注微信公众号:Qt实战 (各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线wllw7176

只看该作者 9楼 发表于: 2018-09-09
回 liudianwu 的帖子
liudianwu:你说的是汽车仪表盘左上角部分的发光?加了个滑盖。
[图片]
int radius = 90;
    painter->save();
....... (2018-09-09 14:21) 

就是这个,谢谢赐教!!!
快速回复
限100 字节
 
上一个 下一个