首页 >>  正文

qt打包linux版

来源: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 全面升级

蒲莫轮1022linux下怎么安装qt4.6.4 -
邴泄若15298939697 ______ 去QT官网下载对应的qt安装包在linux下面直接双击(你没有看错,是双击!)安装包开始安装,安装过程和Windows下面基本相同打开QT的IDE开始写代码

蒲莫轮1022如何在linux下编译安装编译qt5.6.2 -
邴泄若15298939697 ______ 1 需要保证linux下要安装了qt环境2 进入你的程序目录,运行 /usr/local/qt_install/bin/qmake xxxx.pro. 其中/usr/local/qt_install是qt安装目录. xxxx.pro是你应程程序中的pro文件3 执行make4 运行生成的bin文件

蒲莫轮1022linux 该安装qt什么版本 -
邴泄若15298939697 ______ qtcreator中选项设置中可以选择你操作系统中安装的qt版本,如果你实在不想安装其他版本,就去官网下载一个单独的qtcreator安装包

蒲莫轮1022请教一下在QT里面,是否可以包含Linux里面的头文件例如 #include<fcntl.h>
邴泄若15298939697 ______ 可以的,前提是,Qt必须安装在linux,中,如果是Qt creator 你可以写好了再到linux下编译.否则报错.

蒲莫轮1022我在windows下用QT写了个程序,把这个源代码直接在linux下编译可以吗? -
邴泄若15298939697 ______ 可以,只要你不调用Windows的API函数就可以. 还有你在不同的系统可以使用条件编译那样就不存在任何问题了

蒲莫轮1022ubuntu下写了Qt界面程序,怎么打包成为.exe可执行文件
邴泄若15298939697 ______ QT4-make只有qmake模块,你还需要qt4-dev等带dev字样的开发模块头文件包

蒲莫轮1022怎么使Qt发布的程序在非Qt环境的Linux下运行 -
邴泄若15298939697 ______ 1、在Linux下的命令行编辑程序:[root@localhost root]# mkdir hello//mkdir命令创建一个hello目录 [root@localhost root]# cd hello//cd命令切换到刚才创建的hello目录 [root@localhost hello]# vi main.cpp//在hello目录中用vi创建一个main.cpp文件 将下...

蒲莫轮1022在linux用qt编译的程序如何移植到window下进行演示? -
邴泄若15298939697 ______ 很简单,打包工程项目,移动到Windows平台下,然后删除Linux平台配置文件,再编译即可通过了.至于平台配置文件是那一个我就不说了,自己找找吧,不是cpp,不是h,不是ui,不是资源文件,而且一个很明显的平台编译配置文件.

蒲莫轮1022Qt是什么? -
邴泄若15298939697 ______ Qt是一个跨平台的C++图形用户界面应用程序框架.它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能.Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程. 自从1996年早些时候,Qt进...

蒲莫轮1022Qt 如何打包一个软件 -
邴泄若15298939697 ______ qt自己有个qt installer,就是我们安装qt时的效果.也可以用visual studio的Install Shield插件打包,很多软件都是用Install Shield打包的

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