LibQQt 1.0 and PyMake(PyCmd).py 1.0



  • 在MIPS开发项目的额时候遇到很多Qt自身无法解决的问题。 比如QTableView完全自定义的时候QHeaderView无法被完全隐藏。不得已不得不做了这样一个中间适配层。里面有非常丰富的功能。
    支持绘制图表
    支持检测USB设备热插拔
    自定义了一部分特殊需要的控件,比如仅仅使用图片的checkbox
    网络连接管理类
    解决Qt4.8.7在MIPS嵌入式屏幕上QGraphics系统不正常绘画的问题
    QQt输入法
    Qt对象工厂,允许注册和查找和删除所有来自QObject的类。
    视频播放器,模拟端口实时预览器
    QQt打印机,支持USB打印机,打印pdf文件
    QQt进度条,解决Qt进度条在Dialog中导致系统死机的问题。
    QQtWord,支持文档代码级编辑,输出pdf格式。
    QQtTabWidget,解决QtTab不能竖排的问题
    QQtTreeView,添加Qt内部没有的TreeView
    支持工程的版本变更
    QQt通讯套件。
    serialport/tcpclient/tcpserver通讯口类和
    QQTProtocol协议基类和
    QQTMessage报文基类。
    这几个通讯类在做客户端程序的时候完全够用,在服务器程序中,如果工程需要更大的ThreadPool支持和HttpSerialize支持需要添加功能

    支持qmake和cmake两种工程组织管理方式。(对cmake的支持最近没更新)
    现在已经支持macOS(编译目标为QQt.Framework)、Windows、Linux、MIPS32
    未测试Android、iOS、ARM32 ... 应该没有太大阻力了,多是一些平台相关的问题。

    里面包含刘典武老师的输入法源代码,已经被改变支持一部分外部按钮和自定义显示位置。鸣谢:刘典武老师
    把源码共享给大家,提高开发效率和质量,希望借此能够扩大Qt开发者的规模,为Qt开发做出贡献。
    支持Qt5、Qt4,全面使用GPLV3协议。(编译为LibQQt.so或者QQt.Framework便可以在App中使用其他协议了)
    尊重我的劳动成果,转载、使用请注明出处。
    几乎不同于天池项目,天池项目是在桌面开发中应用的积累,LibQQt是在开发过程中不得不解决Qt自身存在的问题,目标不同。(For resolving Qt Embedded's bugs, push to you)
    已经在项目中应用过了,算是测试好了的吧。

    源代码工程:

    https://gitee.com/drabel/LibQt.git
    https://gitee.com/drabel/PyMake.git
    过去托管在CSDN,据说要关闭了,CSDN上不再更新了。
    CSDN地址
    https://code.csdn.net/Dr_Abel/libqt/tree/master

    里面包含一个PyMake工程,用于跨平台交叉编译设置,包括PyMake.py和PyCmd.py两个Python程序 V1.0
    这两个工程的作用在于对GenMakeTool和编译器之间的编译环节进行干预,弥补GenMakeTool强大的工程组织功能之余对于编译支持的不足(比如 cmake 在windows下mingw32编译的时候会报告找不到winpthread.dll)在这个工程中。toolchainpath、genmakepath、qmakepath、sdkpath,环境变量全部都被自动包含和解决了。
    PyCmd具有强大的命令定制能力,可以设置多个named-command,可以设置多组execute-stream,而执行则更为简单
    build-station>python path/to/pymake.py exec your-command-stream-names
    ....
    自动化程度非常高。在用Qt进行跨平台编译发布打包的时候,极为有用。
    并且PyCmd.py不仅仅可以做编译工作,还可以做其他的任何的需要脚本调用命令参与的工作,为跨平台而写。
    支持python >=2.6 python3.x

    Enjoy it.

    [Moved to Chinese ~kshegunov]


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.