1 Star 32 Fork 17

Qt进阶之路 / TaoCommon

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 6.71 KB
一键复制 编辑 原始数据 按行查看 历史
武威的涛哥 提交于 2021-12-04 09:40 . update name

TaoCommon

简介

收集一些常用的Qt后端代码,以便以后复用。

必须是经过实际项目验证过的。

github原始仓库https://github.com/jaredtao/TaoCommon

gitee镜像仓库https://gitee.com/jaredtao/TaoCommon

CI

Windows Ubuntu MacOS Android IOS
win-badge ubuntu-badge macos-badge android-badge ios-badge

内容

按文件夹分类

Logger

日志模板,来自TaoLogger项目

Thread

Qt多线程模板,来自TaoThread项目

包括对Qt的Worker-Controller多线程模型的封装。

Common

一些通用的代码段。

文件名 功能
FileReadWrite.h 文件读写、Json读写
Package.h 简易socket数据封包、拆包
JsonSerialize.h json序列化 反序列化的一些宏
PropertyHelper.h 快速生成Q_PROPERTY的一些宏
Subject.h 观察者模板
ObjectMap.h 对象存储器;优先级对象存储器。主要用来实现 "依赖注入"

可以参考TaoQuick项目

FrameLess

简易的无边框窗口,支持Windows Areo 效果

可以参考TaoQuick项目

Trans

Qt动态翻译。

加载自定义json格式的翻译文件。

为动态切换语言做支撑。

对于QWidget,可以正常用。

对于Qml, Qt5.10以前,通过trans.transString的方式,触发动态切换语言,5.10以后,直接调用reTranslate

可以参考TaoQuick项目

QuickModel

自定义ListModel,为大数据表格结构和树结构提供支持。

可以参考TaoQuick项目


使用方式

用法(1) -- 使用源码

直接在你的项目中包含TaoCommon.pri文件,

include(TaoCommon/src/TaoCommon/TaoCommon.pri)

你可以将"TaoCommon/src/TaoCommon"路径中的最内层的TaoCommon文件夹拷贝到任意位置,并

在你的项目中添加对应位置的TaoCommon.pri, 使用的地方包含头文件即可。

可以参考示例 demo/CommonWithSource

用法(2) -- 作为Qt模块安装

TaoCommon本身是一个Qt模块,可以通过make install的方式,直接安装进QTDIR.

(Qt模块需要安装perl)

只需要执行以下命令:

qmake
make
make install

也可以通过QtCreator执行安装:

打开TaoCommon项目,在 QtCreator的 "项目->Build 步骤" 中,添加一个 make install步骤进行安装。

安装完成后,在你的项目pro文件中,增加 QT += TaoCommon即可导入模块,使用的地方包含头文件即可。

注意编译TaoCommon所使用的Qt版本,要和你的项目使用的版本相同,否则会找不到模块。

可以参考示例 demo/CommonWithModule

发布程序时需要带上QTDIR/bin/TaoCommon.dll

两种用法的对比

以源码的方式使用,优点是方便,缺点是会增加编译时间。

以Qt模块的方式使用,优点是不用每次都编译,缺点是要注意Qt版本一致性,且发布时要带上dll。

cmake 使用源码

将TaoCommon路径添加到cmake中,使用add_subdirectory指令

add_subdirectory(${CMAKE_SOURCE_DIR}/3rdparty/TaoCommon ${CMAKE_SOURCE_DIR}/build/3rdparty/TaoCommon)

添加此路径,能够获得两个宏定义TaoCommonPath 和 TaoCommonFiles

TaoCommonPath添加到头文件路径 TaoCommonFiles添加到execulate的

示例如下:

add_executable(${TargetName}
        ${OtherSourceFiles}
        ${TaoCommonFiles}
        )
target_include_directories(${TargetName} PUBLIC . ${TaoCommonPath})

联系作者

作者:武威的涛哥

欢迎联系我,乐于提供技术咨询服务,可洽谈技术支持、商业合作。

邮箱: jared2020@163.com

微信: xsd2410421

QQ: 759378563


关注作者动态

欢迎关注涛哥的微信公众号: Qt进阶之路

不定期分享Qt相关的高质量教程


寻找同道中人

欢迎加入涛哥的QQ群: Qt进阶之路

此群是高质量群,Qt界大佬众多,不灌水闲聊,日常交流技术、分享书籍、帮助解决实际问题。

1群:734623697

2群:342341405


赞助

觉得分享的内容还不错, 就请作者喝杯奶茶吧~~

赞助列表

感谢以下网友的赞助与支持(排名不分先后):

hxhlb (花心胡萝卜工作室)

咸鱼猴

Qt侠-刘典武

一去、二三里

大樹

丝绸-郑天佐

寒山-居士

小风电子

Qt君

海盗船

雨田哥

游龙

Rj

重庆-胡某某

Ivy

孙十一少

田宇

power

敢敢

扣脚翁

白菜豆腐

甜不辣

Mr.Hu

秾芳教主

焖哥

蓝色幻想

Martin Zuo

windsmoon

小手冰凉

永远=没有终点

我是王大狗

米粒旅行

C++
1
https://gitee.com/jaredtao/TaoCommon.git
git@gitee.com:jaredtao/TaoCommon.git
jaredtao
TaoCommon
TaoCommon
master

搜索帮助