• 24392阅读
  • 35回复

使用qml仿制微信。提供轻量级框架~ [复制链接]

上一主题 下一主题
离线qyvlik
 

只看楼主 正序阅读 楼主  发表于: 2015-08-19
— 本帖被 realfan 执行提前操作(2015-08-24) —
关键词: 开发qml部分
如何使用qml开发安卓app?这里给一个轻量级的框架~
这个框架主要是以页面栈为主的框架。
http://v.youku.com/v_show/id_XMTMxMzUwNDgxMg==.html









https://github.com/GDPURJYFS/WellChat


---
2015.9.1
回家之后就没怎么线上更新,但是线下一直有进行研究,开学之后会进行更新。欢迎大家一起学习。

---
2015.9.13
修复了文字溢出。

---

2015.9.18
吐血大修复

修复了可选项大小的问题
修复了安卓上WebView加载本地html的问题。
修复了安卓上,输入框在底部,弹出键盘,顶部工具栏被顶出屏幕的问题。
修改了项目目录。
更新了 Sparrow 模块。
    大家可以去看看这个麻雀模块,力图做到麻雀虽小五脏俱全。https://github.com/GDPURJYFS/Sparrow
修改了qml入口文件的加载方式(放弃了使用QtObject来加载ApplicationWindow这种方式)
添加了可以隐藏显示 topBar 和 bottomBar的动画。并提供了topBarArea,bottomBarArea,backgroundBarArea的接口。

2015/9/27
- 添加了心跳包。- 修复了 Keyboard ,添加了protected 的写函数。- 修复 UI.js 的字体大小- 修复了java调用c++native函数的方式。

2015/11/03
- 重构java代码部分,修复包名为小写。

2015/11/19
- 重新制定了一个QtBridgingAndroid类(C++和Java),用于Java和C++交互。
- 提供在Qt QML 中修改安卓状态栏的方法。
     - 但是问题多多呢。。。例如将回到主页,再回到应用中,就无法保持上次设置的状态栏颜色。

2015/11/21
TODO 列表
- 重构预警,所谓重构,其实就是对Sparrow这个模块进行升级,还有一些其他遗留的问题。
- 将图灵机器人植入其中。
- 预计年底完成它吧。不过估计是要拖到明年的一月了。

2015/12/29


QML 框架 重构完毕

无血可吐。

1. 删除了不必要的本地 html 文件。没有使用到的图片资源。减小 qrc 资源的大小(字体没减掉。。。)
2. 对于业务实现页面,使用qml单例来存储每个页面的url。(详细查看qml/WellChat/BussinessPage)
3. 对于应用的一些图片音乐等资源,使用qml单例来保存每个资源的 url。(详细查看)
4. 项目的主要结构并没有太大改动。
5. 使用了最新的Sparrow控件库。https://github.com/GDPURJYFS/Sparrow/

你可以从本次提交中学习一些东西,例如怎么在QML中写动画。


1. 确定要对谁实施动画。(target)。

2. 写状态,当 target 处于某状态时,其属性的值。

3. 写各个状态的过度。

4. 完善过度中的动画。

巴拉巴拉~或许今年就到这里为止了吧。

如果你从这个项目中学到了一些东西,你可以star或者推荐给别人学习哦~别忘记follow me~

---

2015/12/31

年终修复安卓修复键盘弹出界面不友善问题。

更新查看https://github.com/GDPURJYFS/WellChat/commit/8e3eb5ebcd0bd6fcffea0fce347028103f0cd20c

恩,修复了,演示视频的话。看这个吧http://www.bilibili.com/video/av3485059/


---

2016/1/20

TODO

现阶段的 Sparrow 的 QML 模块处于 1.0 阶段。
在 1.1 阶段

  1. 支持沉浸式(安卓 5.0 及以上支持,IOS 默认支持)
    需要对 Page 以及 PageStackWindow 控件重新设计。

  2. 支持沉浸式和全屏的切换

  3. 提供良好的输入框。
    由于 Qt 在安卓上的输入框有些许问题,直到 Qt 官方解决 Qt 应用窗体大小调整时闪烁的问题。预计版本或许是 Qt 5.7 解决吧,毕竟 Qt 5.7 是在 2016 年 Q2 放出。

  4. 提供一个简易的 Qt3D 支持控件,Room3D 和 Page3D。
    其中,Room3D 包含一个最简单的场景和摄像头,必要的灯光。 Page3D 提供普通的 QML 元素和 Qt3D::Entity 的交互,例如动画。等至 Qt 5.7 正式放出 Qt3D 的时候,就可以有更多的支持了。

  5. 将提供良好的 C++ 扩展模块,例如 I/O 设备,更强大的网络套件(Sparrow.Network)。
    由于 QML 中的 XMLHttpRequest 不能很好的处理 Cookie,好吧,其实是根本不能处理,既不能接受来自服务器的 Cookie也不能设置 Cookie。所以将 Qt 的网络模块通过封装后,在 QML 中使用,Qt C++ 的网络模块本身是异步的,就不用担心阻塞 GUI 线程了。
    另一个是将 QIODevice 及其子类进行封装,注册到 QML 中,这一个模块对 QML 的 GUI 线程是阻塞的,所以提供的功能会注意裁剪,毕竟这个模块是 Sparrow.Network 的附属模块。

  6. 提供更加良好的多线程及并发模块。
    这一块要研究好久,就放到 Sparrow 2.0 模块吧。



预计下次更新本帖时间为开学季吧。。。。毕竟放假回家没有网络。


15条评分好评度+4贡献值+3金钱+22威望+4
长白居士 威望 +1 - 2018-04-26
长白居士 金钱 +1 - 2018-04-26
250lll 好评度 +1 - 2015-10-11
apeart 好评度 +1 刚开始学,这个不错,有木有样的! 2015-09-11
apeart 贡献值 +1 刚开始学,这个不错,有木有样的! 2015-09-11
apeart 威望 +1 刚开始学,这个不错,有木有样的! 2015-09-11
apeart 金钱 +1 刚开始学,这个不错,有木有样的! 2015-09-11
咬蚊嚼渍 好评度 +1 - 2015-08-21
咬蚊嚼渍 贡献值 +1 - 2015-08-21
咬蚊嚼渍 威望 +1 - 2015-08-21
12
ubiboot
离线cycloveu

只看该作者 35楼 发表于: 2017-04-24
大道至简 悟在天成
离线tiangao

只看该作者 34楼 发表于: 2017-04-21
很好,很强大
离线lsyzsl

只看该作者 33楼 发表于: 2017-02-21
楼主的qml在哪学习的?求教程啊
离线新手崛起

只看该作者 32楼 发表于: 2016-12-02
楼主有没有做模仿微信更换头像的功能,我目前就在研究这个,只能通过安卓默认的打开相册获取,还做不到微信那么好看的自带的照片浏览器,不知道楼主是否有过研究
突然发现,我有留言过楼主的博客,就是你的那篇qt获取安卓照片路径的那个。希望楼主看到能回复交流下
只有想不到,没有做不到的
离线自强不吸

只看该作者 31楼 发表于: 2016-07-05
回 z609932088 的帖子
z609932088:去年可以,今年公司上层不知道是不是进水了,就是不发公司,研发团队快不保了,而且没钱进行二次迭代开发。好鸡巴煎熬, (2016-07-01 10:21) 

那赶紧撤啊,现在有工作经验还能卖个好价钱
自强不吸!
离线z609932088

只看该作者 30楼 发表于: 2016-07-01
回 自强不吸 的帖子
自强不吸:我现在倒是感觉挺好的,去年从北京来深圳了,终于感觉开始起步了 (2016-06-30 14:26) 

去年可以,今年公司上层不知道是不是进水了,就是不发公司,研发团队快不保了,而且没钱进行二次迭代开发。好鸡巴煎熬,
有阳光的地方就是青春
离线自强不吸

只看该作者 29楼 发表于: 2016-06-30
回 z609932088 的帖子
z609932088:恩,现在也是感觉前途一片迷茫 (2016-06-30 08:15) 

我现在倒是感觉挺好的,去年从北京来深圳了,终于感觉开始起步了
自强不吸!
离线z609932088

只看该作者 28楼 发表于: 2016-06-30
回 自强不吸 的帖子
自强不吸:我大学感觉一直在睡觉,早知道还不如谈个恋爱,马蛋 (2016-06-29 17:45) 

恩,现在也是感觉前途一片迷茫
有阳光的地方就是青春
离线自强不吸

只看该作者 27楼 发表于: 2016-06-29
回 z609932088 的帖子
z609932088:你的大学生活过的真心不错了,我大学那会啥都不会,你找工作的时候可以都可以那着这个去谈去,太羡慕你了,我大学就做了点小东西,好后悔 (2016-02-16 15:17) 

我大学感觉一直在睡觉,早知道还不如谈个恋爱,马蛋
自强不吸!
离线cleverscl

只看该作者 26楼 发表于: 2016-04-27
学习一下
离线aweeew2008

只看该作者 25楼 发表于: 2016-03-03
做的很不错,学习了
离线z609932088

只看该作者 24楼 发表于: 2016-02-16
你的大学生活过的真心不错了,我大学那会啥都不会,你找工作的时候可以都可以那着这个去谈去,太羡慕你了,我大学就做了点小东西,好后悔
有阳光的地方就是青春
离线zhaoyeni1987

只看该作者 23楼 发表于: 2016-02-07
楼主辛苦了!
离线qyvlik

只看该作者 22楼 发表于: 2016-01-20
现阶段的 Sparrow 的 QML 模块处于 1.0 阶段。

在 1.1 阶段

支持沉浸式(安卓 5.0 及以上支持,IOS 默认支持)

需要对 Page 以及 PageStackWindow 控件重新设计。

支持沉浸式和全屏的切换

提供良好的输入框。

由于 Qt 在安卓上的输入框有些许问题,直到 Qt 官方解决 Qt 应用窗体大小调整时闪烁的问题。预计版本或许是 Qt 5.7 解决吧,毕竟 Qt 5.7 是在 2016 年 Q2 放出。

提供一个简易的 Qt3D 支持控件,Room3D 和 Page3D。

其中,Room3D 包含一个最简单的场景和摄像头,必要的灯光。 Page3D 提供普通的 QML 元素和 Qt3D::Entity 的交互,例如动画。等至 Qt 5.7 正式放出 Qt3D 的时候,就可以有更多的支持了。

将提供良好的 C++ 扩展模块,例如 I/O 设备,更强大的网络套件(Sparrow.Network)。

由于 QML 中的 XMLHttpRequest 不能很好的处理 Cookie,好吧,其实是根本不能处理,既不能接受来自服务器的 Cookie也不能设置 Cookie。所以将 Qt 的网络模块通过封装后,在 QML 中使用,Qt C++ 的网络模块本身是异步的,就不用担心阻塞 GUI 线程了。

另一个是将 QIODevice 及其子类进行封装,注册到 QML 中,这一个模块对 QML 的 GUI 线程是阻塞的,所以提供的功能会注意裁剪,毕竟这个模块是 Sparrow.Network 的附属模块。

提供更加良好的多线程及并发模块。

这一块要研究好久,就放到 Sparrow 2.0 模块吧。


预计下次更新本帖时间为开学季吧。。。。毕竟放假回家没有网络。
ubiboot
离线qyvlik

只看该作者 21楼 发表于: 2015-12-31
2015/12/31

年终修复安卓修复键盘弹出界面不友善问题。

更新查看https://github.com/GDPURJYFS/WellChat/commit/8e3eb5ebcd0bd6fcffea0fce347028103f0cd20c

恩,修复了,演示视频的话。看这个吧http://www.bilibili.com/video/av3485059/
ubiboot
离线qyvlik

只看该作者 20楼 发表于: 2015-12-29
2015/12/29

QML 框架 重构完毕

无血可吐。

1. 删除了不必要的本地 html 文件。没有使用到的图片资源。减小 qrc 资源的大小(字体没减掉。。。)
2. 对于业务实现页面,使用qml单例来存储每个页面的url。(详细查看qml/WellChat/BussinessPage)
3. 对于应用的一些图片音乐等资源,使用qml单例来保存每个资源的 url。(详细查看)
4. 项目的主要结构并没有太大改动。
5. 使用了最新的Sparrow控件库。https://github.com/GDPURJYFS/Sparrow/

你可以从本次提交中学习一些东西,例如怎么在QML中写动画。

1. 确定要对谁实施动画。(target)。

2. 写状态,当 target 处于某状态时,其属性的值。

3. 写各个状态的过度。

4. 完善过度中的动画。

巴拉巴拉~或许今年就到这里为止了吧。

如果你从这个项目中学到了一些东西,你可以star或者推荐给别人学习哦~别忘记follow me~
ubiboot
离线qyvlik

只看该作者 19楼 发表于: 2015-12-27
https://github.com/GDPURJYFS/Sparrow/commit/0925e723e17290474e6a3993633fbf62d0f009fb

Sparrow 这个模块更新啦~但还没有同步到WellChat和其他使用Sparrow的项目中。
ubiboot
离线qyvlik

只看该作者 18楼 发表于: 2015-12-21
2015/11/21
TODO 列表
- 重构预警,所谓重构,其实就是对Sparrow这个模块进行升级,还有一些其他遗留的问题。
- 将图灵机器人植入其中。
- 预计年底完成它吧。不过估计是要拖到明年的一月了。
ubiboot
离线hunterzf

只看该作者 17楼 发表于: 2015-11-18
谢谢楼主,学习一下
离线stlcours

只看该作者 16楼 发表于: 2015-09-18
吐血感谢~~~楼主比我当年被大学上的时候要强10倍~~~
离线qyvlik

只看该作者 15楼 发表于: 2015-09-18
2015.9.18
吐血大修复

修复了可选项大小的问题。
修复了安卓上WebView加载本地html的问题。
修复了安卓上,输入框在底部,弹出键盘,顶部工具栏被顶出屏幕的问题。
修改了项目目录。
更新了 Sparrow 模块。
    大家可以去看看这个麻雀模块,力图做到麻雀虽小五脏俱全。https://github.com/GDPURJYFS/Sparrow
修改了qml入口文件的加载方式(放弃了使用QtObject来加载ApplicationWindow这种方式)
添加了可以隐藏显示 topBar 和 bottomBar的动画。并提供了topBarArea,bottomBarArea,backgroundBarArea的接口。
ubiboot
离线firstnoname

只看该作者 14楼 发表于: 2015-09-11
离线apeart

只看该作者 13楼 发表于: 2015-09-11
刚开始学,这个不错,有木有样的!
离线shaoxie1986

只看该作者 12楼 发表于: 2015-09-09
好东西啊,终于是更新了,学习的好样本。
离线qyvlik

只看该作者 11楼 发表于: 2015-09-01
回 stlcours 的帖子
stlcours:能在iOS上运行吗? (2015-08-24 16:33) 

没有设备,这个是纯qml的框架,有ios设备的可以直接尝试运行。
ubiboot
离线stlcours

只看该作者 10楼 发表于: 2015-08-24
能在iOS上运行吗?
离线xianqingzh

只看该作者 9楼 发表于: 2015-08-24
赞!谢谢分享!
离线自强不吸

只看该作者 8楼 发表于: 2015-08-23
    
自强不吸!
离线realfan

只看该作者 7楼 发表于: 2015-08-20
很有价值的帖子。共同学习,将Qt发扬光大,Qter的日子就好过了。
离线rjw172

只看该作者 6楼 发表于: 2015-08-20
谢谢分享!
离线arlyb

只看该作者 5楼 发表于: 2015-08-19
谢谢分享,有好的大家一起分享,有版权的我们也可以交流思想嘛
离线tramidu

只看该作者 4楼 发表于: 2015-08-19
非常好,表示支持
离线彩阳

只看该作者 3楼 发表于: 2015-08-19
谢谢分享,大爱
上海Qt开发联盟,热忱地欢迎你的加入!
离线更好

只看该作者 2楼 发表于: 2015-08-19
   多谢楼主
离线断剑1001

只看该作者 1楼 发表于: 2015-08-19
赞,需要的就是这种精神,多谢楼主
快速回复
限100 字节
 
上一个 下一个