首页 >>  正文

qt+程序打包

来源:baiyundou.net   日期:2024-09-25

IT之家 9 月 13 日消息,据深度操作系统 deepin 新闻中心显示,deepin DTK(Development ToolKit)近日已正式适配 Qt6 (6.4.2),实现全面升级

▲ 图源 深度操作系统 deepin 新闻中心

官方表示,DTK 作为 deepin 基于 Qt 开发的一整套通用开发框架,处于 deepin 操作系统中的核心位置,此次成功适配意味着 deepin 操作系统后续将充分利用 Qt6 版本的新特性及新功能,在最大程度上为用户提供更先进、更高效的体验。

IT之家附官方完整介绍如下:

为什么要适配 Qt6

自 deepin 诞生以来,deepin 桌面操作系统就以简洁、直观和美观的外观,以及独特的操作方式引起了广泛关注。DTK 作为 deepin 操作系统的核心工具开发组件,不仅为用户提供了丰富的控件,而且具有强大的定制能力和高度可扩展性,为 deepin 桌面操作系统注入了独特的个性与魅力。因此,deepin 团队一直关注着 Qt 的变化。

Qt6 作为我们正在使用的开发工具包(SDK)的最新版本,不仅是 Qt5 版本的升级,更是一次从头开始的全面革新,不但加强了跨平台兼容性、改进了性能,同时引入了诸多新的功能及工具,如更强大的图形渲染、多线程支持等。

考虑到 Qt6 将成为未来几年中的主要版本,为确保应用程序在未来的发展中与最新技术保持同步,我们在 deepin V23 Beta 版本中,完成了 DTK 对 Qt6 (6.4.2) 的适配。

在此次适配 Qt6 后,开发者可直接在基于 Qt6 开发的项目上接入 DTK,无需单独对 Qt5 & DTK 进行二次适配,极大地减少了开发资源的重复和浪费。已在使用 Qt6 进行开发的应用也可以接入 DTK 框架进行深入开发更符合 DDE 样式的程序,兼顾性能的同时,美观依然在线。

适配问题及处理
  • API 变动

Qt6 对一些 API 进行了重大改动和调整,导致一些原有的代码需要进行修改和适配。于是我们对代码进行全面分析和重构,以确保其在 Qt6 和 Qt5 中的兼容性。

  • 存在的功能缺失

在 Qt6 中,由于技术和架构的变化,某些 Qt5 中存在的功能可能被删除、替代或者(暂时)禁用。这意味着我们需要找到替代的方式来实现相同的功能,或者重新设计和开发相关功能。

  • 第三方库和插件兼容性

Qt5 常常与其他第三方库和插件进行集成,但是这些库和插件可能并不完全兼容 Qt6。所以我们在适配 Qt6 时,对这些集成进行了评估和测试,并进行必要的修改和调整。如 qtxdg / QGSettings 还未完全适配 Qt6,因此在 Qt6 编译时暂时禁用 libqtxdg / QGSettings 相关代码。

  • 依赖项的更新

Qt6 通常会升级依赖的一些外部库和工具链,为满足 Qt6 的要求。于是我们注意升级和适配这些依赖项。

  • DTK6 的打包和版本管理的实现

在 DTK 适配完 Qt6 后,考虑到可维护性,我们并没有采用创建新分支的方式管理 DTK5 和 DTK6,二者使用同一套代码,DTK5 和 DTK6 将共存于系统中。

  • 接口适配

对于 Qt5 中已经标注废弃但还在用的接口,在适配 Qt6 时,我们直接将其删除,并使用可用的接口替换。对于一些不稳定的接口,如通过某些技术获取的一些 Qt 私有接口甚至私有变量,我们则通过对比 Qt5 和 Qt6 版本的源代码,根据功能逻辑找到变化后的接口,尽量使用 Qt6 公开的接口对其进行替换。

成果及未来规划

整个 Qt6 的适配过程中,总计有 1000+(1609)文件变动,代码新增 20000+ 行数,代码移除 10000+ 行数。

截至目前, deepin DTK 已完成 5 个版本迭代,100+ 次更新,累计提交代码近 20 万行,已被迁移至超过 10 个 Linux 发行版。

未来,我们也将与最新技术保持同步,进一步提升应用程序的稳定性。我们衷心希望这次适配能够为开发者和用户带来更先进、更高效的体验,也期待更多感兴趣的朋友加入我们,讨论更多内容,为推动生态发展贡献力量。

参考

  • deepin(深度)宣布 deepin DTK 已完成基于 Qt6 的全面升级

","gnid":"930973d090704fbe0","img_data":[{"flag":2,"img":[{"desc":"","height":"573","title":"","url":"https://p0.ssl.img.360kuai.com/t014c33c87aea7eb52f.jpg","width":"1070"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"hbase","pub_time":1694593220000,"pure":"","rawurl":"http://zm.news.so.com/f02924e9fb2063cf62fada549a47d440","redirect":0,"rptid":"98b293d0be6f88a4","rss_ext":[],"s":"t","src":"IT之家","tag":[{"clk":"kdigital_1:操作系统","k":"操作系统","u":""}],"title":"深度操作系统 deepin 宣布 DTK 开发框架已完成基于 Qt6 全面升级

魏贪宽1087Qt怎么实现对文件夹的打包压缩 -
高帘扶19182549287 ______ 你需要WinRAR,右键点击文件,选择添加到压缩文件,,或者直接新建一个压缩文件,将要压缩的文件拉到压缩文件的图标上

魏贪宽1087有人知道vs2013+opencv+Qt5.5编写的程序怎样打包 -
高帘扶19182549287 ______ 首先建立一个工程并把OPENCV的配置文件... 1 下面对各个子函数的功能进行介绍.首先... 2 这里主要用到了信号槽,即一个按键按下... 3 下面的这两个文件程序用到最多的地方.... 4 ui_qt_opencv.h是对应的界面的配置,当... 5 接下来是测试,运行后点击打开就会加载...

魏贪宽1087QT4 Linux GUI应用程序如何把所需要的QT库一起打包,使其能在没有装QT4的Linux平台上运行?? -
高帘扶19182549287 ______ 写在依赖包列表里,有管理程序会自动下载安装的.不过要写明版本和候选源的名字.加上官方的运行库依赖……基本上所有的linux发行版都有qt4运行库的源.至于怎么写,您百度一下吧……rpm或者dpkg都有控制命令和测试命令,反正安装的时候测试没有启动下载或者一起打包的库安装就好了.用程序管理器是最容易的,会自动检查依赖并下载.比如yum和apt这种.反正我写qt的时候在linux下从来不担心这问题,基本也没有问题 倒是windows需要自己打包带着走……毕竟windows下用qt的程序很少,装qt运行库的更少了

魏贪宽1087ubuntu下写了Qt界面程序,怎么打包成为.exe可执行文件
高帘扶19182549287 ______ QT4-make只有qmake模块,你还需要qt4-dev等带dev字样的开发模块头文件包

魏贪宽1087如何在未装QT的电脑上运行用QT生成的程序 -
高帘扶19182549287 ______ 通常是把你编译好的release目录下的.exe QT程序COPY到要运行的电脑.可能需要运行环境.就是把在QT\bin\ 目录下的需要用到的 .dll文件拷到程序目录( .exe 目录)

魏贪宽1087qt install framework怎么制作升级包 -
高帘扶19182549287 ______ (1)静态编译发布.这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中.其优势是简单单一,所有的依赖库都集中在一起,其缺点也很明显,可执行程序体量较大,光Qt核心库加起来就得十多兆.(2)制作安装包发布.这种方式的原理也简单,就是将可执行程序和其依赖的库文件一起打包压缩,制作成安装包发布.制作安装包的工具挺多,今天要说的是Qt官方的安装包制作框架 Qt installer framework .这个框架由Qt官方出品,广泛应用于Qt library, Qt Creator等安装包产品.网上搜了一下,相关教程貌似不多.

魏贪宽1087如何用Qt写Android应用
高帘扶19182549287 ______ 我也有动力写这篇文章了. 下面我简单介绍一下用Qt Creator写Android应用的步骤. PS: 在这之前你应该搭建好一个Qt-Android环境,参考我另一篇文章: 设置qt-android开发环境 第一步:创建一个Android项目 我以Empty Qt Project为例....

魏贪宽1087使用Qt静态库为什么运行出错 -
高帘扶19182549287 ______ 因为链接的是qt的动态库,在没有qt动态库的系统上肯定是运行不了的.有两种方法,一种是静态编译,但会让运行文件变大.二种就是把动态库和程序一起打包出去,路径设置

魏贪宽1087怎样用vs2010发布qt程序 -
高帘扶19182549287 ______ 直接在VS2010中用release模式编译程序,然后到工程目录中找到release文件夹,那里面就是可以执行的程序了,要是要保证在其他没有QT的机器上能够运行,要把相应的dll文件拷贝道release中,一般需要包含:QtCore4.dll QtGui4.dll mingwm10.dll libgcc_s_dw2-1.dll (QT4.7以上版本需要) libstdc++-6.dll(QT4.7以上版本需要) 包含dll文件的release程序就是一个完整的可执行程序了,可以用打包工具把release目录下所有的的东西做成一个安装文件即可

魏贪宽1087我使用QT5.0.1写的程序在自己有安装QT的电脑上能正常运行,但在没安装QT的电脑上会出错,我把BIN -
高帘扶19182549287 ______ 因为你链接的是qt的动态库,在没有qt动态库的系统上肯定是运行不了的.有两种方法,一种是静态编译,但会让运行文件变大.第二种就是把动态库和程序一起打包出去,路径设置好就可以,但会让安装包变大,自己权衡咯.我推荐静态编译,因为一般的系统上都没有qt链接库.

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024