# 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)