spark-qt-research/README.md
2021-03-21 15:40:14 +08:00

72 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Qt 技术研究说明
目前星火的Qt开发技术太薄弱了需要积累相关的技术才能开发出更优质的客户端出来。
学习Qt相关的书网络上Qt的系列教程研究开源的Qt程序。
分析学习DTK源码和深入学习Qt。
暂时我还没有一个清晰的目标,我希望后续能够指定一个规划,来攻克技术难点,持续学习、开发。
开发Linux桌面应用是一件非常有意思的事情哈哈能够满足我的情趣也能学到技术交到朋友。
学好这些真正有技术实力的人找工作就是小case了哈哈。
**要研究的技术点**
* [ ] 如何自定义绘制控件DTK的很多控件都是自定义绘制的真心漂亮得学到手。
* [ ] Linux 如何做到静默安装申请一次权限后续下载成功后直接安装能像Deepin商店那样静默安装就更好了。
* [ ] Linux 应用开发的相关技术DBus事件通信
* [ ] 离线缓存应用把客户端需要的数据一次性下载到本地sqlite里只有在数据有更新的时候才重新下载。
* [ ] QML桌面应用开发
* [ ] 多线程应用,线程池、线程暂停恢复、任务队列,看看怎么来封装一个完善的出来,之前研究好久我没咋搞懂。
**Qt/C++书籍攻读**
* [ ] Qt高级编程 Advance Qt Programming Creating Great Software with C++ and Qt4
* [ ] C++ GUI Qt4 编程 C++ GUI Programming with Qt 4
* [ ] Rapid GUI Programming with Python And Qt
* [ ] Qt5 C++ GUI Programming Cookbook
* [ ] Qt5 Blueprints
* [ ] Mastering Qt5
* [ ] Learn Qt 5
* [ ] Hands-On GUI Programming with C++ and Qt5
* [ ] C++ 并发编程实战
* [ ] Qt中的C++技术
* [ ] Linux与Qt程序设计
* [ ] C++ Qt 设计模式
* [ ] Qt及Linux操作系统窗口设计
**开源Qt程序研究**
* [ ] An app store for DDE built with DTK https://github.com/dekzi/dde-store
* [ ] PyQt Examples https://github.com/PyQt5/PyQt
* [ ] pyqt + qt quick qml 工具集 https://github.com/lzx8589561/ZTool
* [ ] Some useful apps based on PyQt5 https://github.com/taseikyo/PyQt5-Apps
* [ ] TurtleBrowser is intended to become a full featured browser https://github.com/turtlebrowser/turtlebrowser
* [ ] 【Qt】【C++】五子棋游戏,游戏双方联网对战。(服务器+客户端) https://github.com/Leopard-C/Gobang
**进阶Qt/C++技术点**
* [ ] Qt 上位机程序开发
* [ ] OpenCV 计算机视觉 识别图像
* [ ] C++ 音视频编码,这个很高端,做直播有用到
* [ ] Socket TCP/IP 网络通信,做即时通讯很有用处
# 星火开发组Qt Demo
放一些大家写的Demo方便参考学习和测试。
## QPushButton 图标左对齐文字剧中
[QProxyStyleTest](./Components/QProxyStyleTest/) 参考以下的内容
* qpushbutton icon left alignment text center alignment 「Python实现的代码很简洁」https://stackoverflow.com/questions/56129402/qpushbutton-icon-left-alignment-text-center-alignment
* QPushButton icon aligned left with text centered 「第二个回答就是,但是好复杂唉」 https://stackoverflow.com/questions/44091339/qpushbutton-icon-aligned-left-with-text-centered
![](./Components/QProxyStyleTest/screenshot.png)
## 多线程下载
[MultiplethreadDownload](./Components/MultiplethreadDownload/)
测试视频下载地址 https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4
多线程下如何更新下载进度的问题还没解决。可以需要将线程任务单独拆分到Worker类里面。
参考内容
* CoverEars(迅雷不及掩耳Qt版多线程下载器) https://github.com/xj361685640/CoverEars-Qt
![](./Components/MultiplethreadDownload/screenshot.png)
# C++ 相关DEMO
用来测试练习C++技术的。
C++实现的线程池,有些问题 [点击查看](./ThreadPool)