找回密码
 立即注册
收起左侧

qtcreator3.2 + qt5.3 版360 来啦!!!

26
回复
16610
查看
[复制链接]
累计签到:882 天
连续签到:3 天
来源: 转载 2014-12-29 19:36:26 显示全部楼层 |阅读模式
本帖最后由 一叶知秋 于 2015-1-29 09:37 编辑

在得到原作者 ╰☆奋斗ing❤孩子` 许可的情况下,我将其vs版360,用qtcreator重构了一下,其代码组织清晰,格式良好,对新手来说是很好的参考学习范例,希望学习者能够尊重其劳动成果和开源精神,为开源贡献自己的力量。。。

源文件地址:     
http://pan.baidu.com/s/1sj9Hj1F

软件截图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

累计签到:882 天
连续签到:3 天
2014-12-29 19:46:04 显示全部楼层
在多上两张图:









本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

累计签到:1569 天
连续签到:1 天
2014-12-29 20:31:33 显示全部楼层
嗯。这个挺不错的。
回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
2015-1-4 11:43:49 显示全部楼层
很棒,赞一个,非常像
回复 支持 反对

使用道具 举报

累计签到:27 天
连续签到:1 天
2015-1-4 21:29:15 显示全部楼层
  LZ牛B                                             
回复 支持 反对

使用道具 举报

尚未签到

2015-1-6 20:56:00 显示全部楼层
在QT Creater 3.3 + QT 5.4里报如下的错误:
QWidget::paintEngine: Should no longer be called
QPainter::begin: Paint device returned engine == 0, type: 1
QPainter::setPen: Painter not active
QWidget::paintEngine: Should no longer be called
回复 支持 反对

使用道具 举报

尚未签到

2015-1-7 14:29:43 显示全部楼层
用QT Creator 3.3 + QT 5.4 编译后执行会报如下的错:
QWidget::paintEngine: Should no longer be called
QPainter::begin: Paint device returned engine == 0, type: 1
QPainter::setPen: Painter not active
回复 支持 反对

使用道具 举报

累计签到:230 天
连续签到:1 天
2015-1-8 00:28:10 显示全部楼层
在另外一个坛子里面看过,已经更新到10.0了,谢谢分享,会跟进学习的
回复 支持 反对

使用道具 举报

累计签到:882 天
连续签到:3 天
2015-1-8 12:32:34 显示全部楼层
用QT Creator 3.3 + QT 5.4 编译后执行会报如下的错:
QWidget::paintEngine: Should no longer be called
QPainter::begin: Paint device returned engine == 0, type: 1
QPainter::setPen: Painter not active

经过排查确实有这个问题,主要原因是因为在contentwidget.cpp文件中的这段代码有问题
  1. bool ContentWidget::eventFilter(QObject *obj, QEvent *event)
  2. {
  3.     if(obj == line_label_1 || obj == line_label_2)
  4.     {
  5.         if(event->type() == QEvent::Paint)
  6.         {
  7.             int label_height_1 = line_label_1->height();
  8.             int label_width_1 = line_label_1->width();
  9.             QPainter painter(line_label_1);
  10.             painter.setPen(QPen(QColor(220, 220, 220), 1, Qt::DashLine));
  11.             painter.drawLine(label_width_1/2, 0, label_width_1/2, label_height_1);

  12.             int label_height_2 = line_label_2->height();
  13.             int label_width_2 = line_label_2->width();
  14.             QPainter painter2(line_label_2);
  15.             painter2.setPen(QPen(QColor(220, 220, 220), 1, Qt::DashLine));
  16.             painter2.drawLine(label_width_2/2, 0, label_width_2/2, label_height_2);
  17.         }
  18.     }

  19.     return QWidget::eventFilter(obj, event);
  20. }
复制代码
这里面的painter并没有生效
回复 支持 反对

使用道具 举报

累计签到:882 天
连续签到:3 天
2015-1-8 12:35:49 显示全部楼层
还有systemtray.cpp也是这个问题,将这两个文件更改后应该就可以通过了
回复 支持 反对

使用道具 举报

累计签到:882 天
连续签到:3 天
2015-1-8 13:55:08 显示全部楼层
本帖最后由 一叶知秋 于 2015-1-8 13:56 编辑

如果将上面的代码改为下面的就可以,但按理说直接画在QLabel上应该也是可以的,求指点。。。。
  1. bool ContentWidget::eventFilter(QObject *obj, QEvent *event)
  2. {
  3.     if(obj == line_label_1 || obj == line_label_2)
  4.     {
  5.         if(event->type() == QEvent::Paint)
  6.         {
  7. //            int label_height_1 = line_label_1->height();
  8. //            int label_width_1 = line_label_1->width();
  9. //            QPainter painter(line_label_1);
  10. //            painter.setPen(QPen(QColor(220, 220, 220), 1, Qt::DashLine));
  11. //            painter.drawLine(label_width_1/2, 0, label_width_1/2, label_height_1);

  12. //            int label_height_2 = line_label_2->height();
  13. //            int label_width_2 = line_label_2->width();
  14. //            QPainter painter2(line_label_2);
  15. //            painter2.setPen(QPen(QColor(220, 220, 220), 1, Qt::DashLine));
  16. //            painter2.drawLine(label_width_2/2, 0, label_width_2/2, label_height_2);

  17.             int label_height_1 = line_label_1->height();
  18.             int label_width_1 = line_label_1->width();
  19.             QPixmap pixmap1(label_width_1, label_height_1);
  20.             pixmap1.fill(Qt::white);
  21.             QPainter painter(&pixmap1);  // 先画在QPixmap上
  22.             painter.setPen(QPen(QColor(220, 220, 220), 1, Qt::DashLine));
  23.             painter.drawLine(label_width_1/2, 0, label_width_1/2, label_height_1);
  24.             line_label_1->setPixmap(pixmap1);

  25.             int label_height_2 = line_label_2->height();
  26.             int label_width_2 = line_label_2->width();
  27.             QPixmap pixmap2(label_width_2, label_height_2);
  28.             pixmap2.fill(Qt::white);
  29.             QPainter painter2(&pixmap2);
  30.             painter2.setPen(QPen(QColor(220, 220, 220), 1, Qt::DashLine));
  31.             painter2.drawLine(label_width_2/2, 0, label_width_2/2, label_height_2);
  32.             line_label_2->setPixmap(pixmap2);
  33.         }
  34.     }

  35.     return QWidget::eventFilter(obj, event);
  36. }
复制代码
先让painter画在画布上,在让label去setpixmap()
回复 支持 反对

使用道具 举报

尚未签到

2015-1-8 22:44:22 显示全部楼层
好象不是这里的问题,改后还是报一样的错
回复 支持 反对

使用道具 举报

累计签到:882 天
连续签到:3 天
2015-1-9 09:19:56 显示全部楼层
要两个文件都改,我在我的编译环境下可以通过
回复 支持 反对

使用道具 举报

累计签到:597 天
连续签到:1 天
2015-1-9 18:26:46 显示全部楼层
我也有看过360的10.0版qt代码,相比于这一版变化最大的就是增加了大量动画效果。
学习的话,必须是书写清晰、整理后的代码,楼主辛苦了
回复 支持 反对

使用道具 举报

累计签到:3 天
连续签到:1 天
2015-1-28 19:58:08 显示全部楼层
楼主,网盘连接怎么失效了。求代码,楼主。
回复 支持 反对

使用道具 举报

累计签到:882 天
连续签到:3 天
2015-1-29 09:21:17 显示全部楼层
回复 支持 反对

使用道具 举报

累计签到:882 天
连续签到:3 天
2015-2-2 19:42:26 显示全部楼层
本帖最后由 一叶知秋 于 2015-2-2 20:02 编辑

增加两个页面,因为没有图片,奖章墙看起来很糙,自己有图片的话更改一下就ok了,并且这个版本修改了一些bug
更改后的地址:http://pan.baidu.com/s/1pJI8U2v

奖章墙


反馈建议



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

累计签到:12 天
连续签到:1 天
2015-2-6 13:02:10 显示全部楼层
   这个真的可以执行?
回复 支持 反对

使用道具 举报

累计签到:336 天
连续签到:1 天
2015-2-11 22:07:54 显示全部楼层
为什么已经不存在了?
回复 支持 反对

使用道具 举报

累计签到:336 天
连续签到:1 天
2015-2-11 22:09:07 显示全部楼层
源文件地址已经无效了?有哪位好心人能更新一下啊?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了