Linux下使用linuxdeployqt发布Qt程序

这篇具有很好参考价值的文章主要介绍了Linux下使用linuxdeployqt发布Qt程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

安装linuxdeployqt

一.下载并安装linuxdeployqt

1.下载

方式一:若系统在ubuntu18.04以下,可以直接去 github下载编译好的linuxdeployqt-x86_64.AppImage 应用程序文件
方式二:若系统ubuntu18.04,则github上还未提供已经编译好的AppImage,需要下载[linuxdeployqt源码](GitHub - probonopd/linuxdeployqt: Makes Linux applications self-contained by copying in the libraries and plugins that the application uses, and optionally generates an AppImage. Can be used for Qt and other applications自己在系统上进行编译后方可使用。

去github直接下载编译好的 linuxdeployqt-continuous-x86_64.AppImage 应用程序文件。

Linux下使用linuxdeployqt发布Qt程序

2.安装

方式一:利用下载编译好的linuxdeployqt-x86_64.AppImage 应用程序文件。下载好之后,将其改名为linuxdeployqt,并chmod +x,然后复制到 /usr/local/bin/。然后命令行输入 linuxdeployqt --version,查看是否安装成功,若输出版本信息表示安装成功。

 chmod +x linuxdeployqt-continuous-x86_64.AppImage
 sudo mv linuxdeployqt-continuous-x86_64.AppImage linuxdeployqt
 sudo mv linuxdeployqt /usr/local/bin
 linuxdeployqt --version
#输出的版本信息
linuxdeployqt 8 (commit aeafcd2), build <local dev build> built on 2022-05-19 02:13:10 UTC

方式二源码编译安装

由于目前官网提供的编译好的包适用于Ubuntu16.04以下的版本,ubuntu18.04及以上版本需要自行编译安装。编译安装步骤如下:

方式二:编译源码。

sudo apt install git g++


首先默认已经安装好了g++、git等工具,如果没有的话得先安装。还需要安装 patchelf 工具,命令如下:

sudo apt install patchelf

1)使用git克隆linuxdeployqt源代码,命令如下:

git clone https://github.com/probonopd/linuxdeployqt --depth=1

2)git完成后,进入linuxdeployqt文件夹

cd linuxdeployqt

#修改 tools/linuxdeployqt/main.cpp 源代码,注释掉源码中版本判断的语句。

gedit tools/linuxdeployqt/main.cpp

3)注释掉源代码种版本判断的代码,使其对ubuntu18.04及以上版本适用,使用gedit或者vim打开tools/linuxdeployqt/main.cpp脚本,将以下代码注释

        /*if (strverscmp (glcv, "2.28") >= 0) {
            qInfo() << "ERROR: The host system is too new.";
            qInfo() << "Please run on a system with a glibc version no newer than what comes with the oldest";
            qInfo() << "currently still-supported mainstream distribution (Ubuntu Bionic), which is glibc 2.27.";
            qInfo() << "This is so that the resulting bundle will work on most still-supported Linux distributions.";
            qInfo() << "For more information, please see";
            qInfo() << "https://github.com/probonopd/linuxdeployqt/issues/340";
            return 1;
        }*/

Linux下使用linuxdeployqt发布Qt程序

注释之后保存退出即可。之后在当前目录执行cmake、make命令。

2. 安装cmake

在Ubuntu上使用命令:

sudo apt install cmake

同样:CentOS使用:

sudo yum install cmake

修改之后保存。然后回到linuxdeployqt目录,使用cmake编译:

cmake CMakeLists.txt

编译完了之后,生成了makefile文件,再执行make完成之后

make

最后在tools/linuxdeployqt目录生成一个可执行文件:linuxdeployqt

cd tools/linuxdeployqt

Ubuntu上将linuxdeployqt文件拷贝到/usr/local/bin使用

在任何一个位置,使用./linuxdeployqt能正常使用,即安装成功了。

在目录tools/linuxdeployqt/linuxdeployqt下会生成一个linuxdeployqt的二进制文件,进入该目录,修改权限使其可执行如下:

sudo chmod 777 linuxdeployqt

同样为了方便直接使用,将该文件移动至/usr/local/bin目录下

sudo cp -p linuxdeployqt /usr/local/bin/

同样执行如下代码显示版本则表示安装成功。

sudo linuxdeployqt --version

三.配置 qt 的环境变量

终端输入vim ~/.bashrc    或者 gedit ~/.bashrc 命令,

vim ~/.bashrc
gedit ~/.bashrc

修改 .bashrc 文件,在文件末尾追加以下内容,因为我是root 命令安装QT的 其中/opt/Qt/5.14.2是我的Qt安装路径,直接安装的你们路径可能是/home大家要用自己的路径代替:

#add QT ENV
export PATH=/opt/Qt5.14.2/5.14.2/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=/opt/Qt5.14.2/5.14.2//gcc_64/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/opt/Qt5.14.2/5.14.2/gcc_64/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/opt/Qt5.14.2/5.14.2/gcc_64/qml:$QML2_IMPORT_PATH

export QT_DEBUG_PLUGINS=1

如果使用查看自己的qmake版本不对

qmake -v

将第一行改为自己安装路径(这是我的安装路径/opt/Qt5.14.2/)下的bin目录的路径,第二行改为Qt5.14.2目录的路径。如下:Linux下使用linuxdeployqt发布Qt程序

sudo gedit /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

改为

/opt/Qt5.14.2/5.14.2/gcc_64/bin
/opt/Qt5.14.2/

Linux下使用linuxdeployqt发布Qt程序

 Linux下使用linuxdeployqt发布Qt程序

qtchooser 的配置目录

/usr/lib/x86_64-linux-gnu/qtchooser

qtchooser 的真实配置目录:

/usr/share/qtchooser

qtchooser 的用户配置目录:

~/.config/qtchooser/

由于我使用的是Ubuntu能直接上面命令修改 其他liunx系统可取真实配置目录下修改

Linux下使用linuxdeployqt发布Qt程序

你也可以用其他方式扩展一些环境变量。像 qmake、moc 以及其他的一些 Qt 工具所在的路径,都需要加到 PATH 里面。但容易损坏系统的一些环境不推荐使用。

具体的做法,打开 /etc/profile(对所有用户有效):

sudo gedit /etc/profile

在该文件的最底下添加以下内容:

export PATH="/opt/Qt5.14.2/Tools/QtCreator/bin:$PATH"
export PATH="/opt/Qt5.14.2/5.14.2/gcc_64/bin:$PATH"

保存,重新加载配置:

source /etc/profile

四、打包应用程序

(1)运行Qt生成release版本的可执行文件,勾选了“shadow build”,所以示例用的是build-untitled-Desktop_Qt_5_14_2_GCC_64bit-Release文件夹下的untitled可执行文件;
(2)创建一个文件夹,名称最好是用可执行文件的名称,然后将untitled可执行文件复制到此文件夹下;
(3)使用 linuxdeployqt 进行打包,一定要加上-appimage选项,命令如下:

 linuxdeployqt untitled -appimage

执行上面命令出现提示信息,不用管,只是创建了一个需要你自己编辑的desktop文件:

ERROR: Desktop file missing, creating a default one (you will probably want to edit it)

到这一步,就把可执行文件的动态库等依赖文件都复制到该文件夹中了。

到这里会出现几个问题:

问题一:lib*.so.1 => not found,类似此类的输出,说明该动态链接库找不到,可以进行如下操作。

#先查看二进制文件所依赖的动态库文件有哪些
$ldd #二进制文件的名称
#找到所依赖的库文件的路径,并添加到/etc/ld.so.conf
#例如.so库文件的路径在/usr/lib/x86_64-linux-gnu,就在/etc/ld.so.conf文件中加上/usr/lib/x86_64-linux-gnu,缺少哪个库就添加哪个库的路径
$sudo vim /etc/ld.so.conf
#保存配置文件后,使用下面的命令使其生效
$sudo /sbin/ldconfig

问题二:在问题一的基础上,还会提示缺少依赖库,但通过ldd查询却没有该依赖库,此时可以去考虑百度搜索该库的名称,看是否缺少该库对应的软件包。例如我提示的是libpq.so.5 notfound,通过搜索发现该依赖库属于postgresql,通过如下命令进行安装

$sudo apt install postgresql
#通过该命令取查找库文件的路径
$sudo find / -name libpq.so.5

最后像问题一中一样添加路径并使其生效。
问题三:在问题一中使配置生效的一步中,可能会提示类似“*libcudnn.so.5 不是符号连接”的问题,那么可以如下方式解决。重新建立链接并删除原链接。
首先找到usr/local/cuda-8.0/lib64/目录(libcudnn所在目录),搜索 libcudnn 然后发现两个文件libcudnn.so.5 和libcudnn.so.5.0.5 理论上只有一个libcudnn.so.5.0.5

#终端执行
$ln -sf /usr/local/cuda-8.0/lib64/libcudnn.so.5.0.5 /usr/local/cuda-8.0/lib64/libcudnn.so.5
#再进行
$sudo ldconfig

这时候会发现usr/local/cuda-8.0/lib64/目录下只有libcudnn.so.5.0.5 文件了,libcudnn.so.5消失了。这个问题就可以解决了。

五.打包后的处理

1.如果在执行完$ linuxdeployqt 自己的工程名称 -appimage命令以后,出现如下内容(还有提示图标或者其他库的问题的可以忽略,只要看到下面的输出,就说明成功了):

Categories entry not found in desktop file
.desktop file is missing a Categories= key

此时会生成AppRun文件,./AppRun或者./自己工程的二进制文件都可以运行,如果项目运行用到了本地文件,也要放到二进制文件所在的目录里面才能保证项目的正常运行。

六.使其像应用程序一样可以启动

1.首先刚刚linuxdeployqt执行完之后,会生成default.desktop文件,使用vim对其进行编辑,内容如下

[Desktop Entry]
Version=app的版本
Name=app的名字
Comment= 说明信息 
Exec=app的执行路径,绝对路径
Icon=icon 路径,绝对路径
Terminal=false #是否在终端启动
Type=Application
Categories=Utility;Application;

之后赋予权限

chmod a+x default.desktop

这时就可以直接双击运行了(提示信任时,直接点击信任即可,这时会发现图标和名称也变了)。

注:这里自定义生成.desktop文件可以复制到/usr/share/applications中,这样应用程序中就可以有改程序;.desktop文件无论复制到什么路径下都可以执行,且项目运行的当前路径为主目录(比如,工程中有数据库操作,那么生成的数据库文件就会在主目录,同理,工程依赖的资源文件,也要放在主目录)。

虽然 linuxdepoyqt 可以帮我们解决多数情况下库的依赖问题,但是也有的时候不能完整解决。这个时候就需要我们自己复制所依赖的库。
提供一个脚本,复制依赖库,复制以下代码,将其保存成为 pack.sh

#!/bin/sh
exe="untitled" #可执行文件名称
des=$PWD #依赖库被拷贝的最终位置
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')

cp $deplist $des

另建一个与文件名称相同的.sh  如untitled.sh

注意该脚本的名称必须和程序名一致。

#!/bin/sh
appname=`basename $0 | sed s,\.sh$,,`

dirname=`dirname $0`
tmp="${dirname#?}"

if [ "${dirname%$tmp}" != "/" ]; then
dirname=$PWD/$dirname
fi
LD_LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH
$dirname/$appname "$@" 

给这两个脚本加权限

chmod 777 xxxxx.sh

chmod 777 pack.sh
chmod 777 untitled.sh

注意:如果程序依赖于编译器特定的库,那么这些库也必须包含进来。

3

拷贝依赖插件

对于所有的 Qt GUI 程序来说,都需要一个实现 Qt 平台抽象(QPA)层的插件。对于 Linux/X11 来说,平台插件的名称是 libqxcb.so。所以,需要将该插件拷贝进来。

当然,如果程序还依赖于其他 Qt 插件(例如:JPEG 图像格式插件或 SQL 驱动程序插件),也需要将这些插件(例如:imageformats 或 sqldrivers)拷贝进来。

这些插件都位于 QTDIR/plugins 下,如下所示:

比如 我的在/opt/Qt5.14.2/5.14.2/gcc_64/plugins

Linux下使用linuxdeployqt发布Qt程序

在没安装QT的环境 可能 出错了,提示 xcb 无法加载,查看一下缺失什么:

可以发现少了 libQt5XcbQpa.so.5 和 libQt5DBus.so.5,在编译机器上找到缺失的库,注意一下这两个文件是链接文件:

使用 ls -al 命令  

Linux下使用linuxdeployqt发布Qt程序

所以要找到对应的源文件,然后将其拷贝到部署目录下并进行重命名,再次运行:

具体创建一个Qt5.14.2的快捷图标

$ sudo vi /usr/share/applications/QtCteator.desktop

在打开的文档中写入: 

[Desktop Entry]

Type=Application

Version=5.14.2

Name=QtCreator

Comment=Run Qt Creator

Icon=/opt/Qt5.14.2/Tools/QtCreator/share/applications/org.qt-project.qtcreator.desktop #这里要放一张qt.png的图标,用于可视化

Exec=/opt/Qt5.14.2/Tools/QtCreator/bin/qtcreator

Path=/opt/Qt5.14.2/Tools/QtCreator/bin

Terminal=false

Categories=GNOME;GTK;System;

另一种shell脚本一键打包

1、首先选择Qt中的“Release”模式,然后点击Run,在Qt工作空间生成相应的build-项目文件夹

Linux下使用linuxdeployqt发布Qt程序

2、将Qt的打包脚本“deployqtapp.sh”放在build-项目名称文件夹内,deployqtapp.sh源码如下:

注意:将第57行的libqxcb.so 替换到本机下“libqxcb.so”的路径。

#!/bin/bash
if [ $# -ne 1 ]
then
        echo "Usage: $0 <executable name>"
        exit 1
fi
 
deployscript=${0##*/}	# delete path and leave file name remained
executable=$1
 
# Obtain the Linux flavour and version.
# distro=`lsb_release -d | awk '{print $2$3$4}' | sed 's/\./_/g'`
 
# Create the directory that will be tarred up for distribution.
# tardir=`echo $executable"_"$distro | awk '{print tolower($0)}'`
tardir=`echo $executable"_deploy" | awk '{print tolower($0)}'`
mkdir $tardir
echo "Created tar ball directory: "$tardir
 
# Copy executable across.
chmod u+x $executable
cp $executable $tardir
echo "Copied executable "$executable" to "$tardir
 
# Copy other files and dirs.
nfiles=0
ndirs=0
for files_dirs in `ls ./`
do
  if [ "$files_dirs" != "$deployscript" ] && [ "$files_dirs" != "$executable" ] && [ "$files_dirs" != "$tardir" ]; then
	if [ -d "$files_dirs" ]; then
		ndirs=$(($ndirs+1))
	else
		nfiles=$(($nfiles+1))
	fi
 
  	cp -r $files_dirs $tardir
  fi
done
echo "Copied other $nfiles file(s) and $ndirs dir(s) to "$tardir
 
# Create the libs directory.
libsdir=$PWD/$tardir/libs
mkdir $libsdir 
echo "Created libs directory: "$libsdir
 
# Copy all dependencies across to the tar directory.
echo "Copying dependencies..."
 
for dep in `ldd ./$executable | awk '{print $3}' | grep -v "("`
do
  cp $dep $libsdir
  echo "Copied dependency "$dep" to "$libsdir
done
 
# You will need to change this to point to wherever libqxcb.so lives on your PC.
qtplatformplugin=/opt/Qt5.14.2/5.14.2/gcc_64/plugins/platforms/libqxcb.so #替换到本机下“libqxcb.so”的路径
qtplatformplugindir=$tardir/platforms
mkdir $qtplatformplugindir
echo "Created platforms directory: "$qtplatformplugindir
cp $qtplatformplugin $qtplatformplugindir
echo "Copied platform "$qtplatformplugin" to "$qtplatformplugindir
 
echo "Copying qtplatformplugin dependencies..."
for dep in `ldd $qtplatformplugin | awk '{print $3}' | grep -v "("`
do
  cp -u $dep $libsdir
  echo "Copied qtplatformplugin dependency "$dep" to "$libsdir
done
echo "Copied qtplatformplugin dependencies"
 
# Create the run script.
execscript=$tardir/"run$executable.sh"
echo "Created run script: "$execscript
 
echo "#!/bin/sh" > $execscript
echo "export LD_LIBRARY_PATH=\`pwd\`/libs" >> $execscript
# echo "export QT_QPA_FONTDIR=\`pwd\`/fonts" >> $execscript
echo "./$executable" >> $execscript
 
# Make executable.
chmod u+x $execscript
 
# Create a README
echo "Creating README..."
 
readme=$tardir/README
echo "================================================================================" >> $readme
echo "Please launch $executable via" >> $readme
echo "" >> $readme
echo "                 $execscript" >> $readme
echo "" >> $readme
echo "If you run into any trouble regarding dependencies, all you need to do is to" >> $readme
echo "run " >> $readme
echo "                 $fixscript " >> $readme
echo "" >> $readme
echo "in order to automatically resolve dependencies on your behalf " >> $readme
echo "(note that you will need administrator privileges for this as this script will" >> $readme
echo "download the necessary libraries for your platform). " >> $readme
echo "" >> $readme
echo "Should you wish to contact me for whatever reason, please do so via:" >> $readme
echo "" >> $readme
echo "                 <http://www.goblincoding.com/contact>" >> $readme
echo "" >> $readme
echo "================================================================================" >> $readme
 
echo "Creating tarball..."
tar -zcvf $tardir".tar" $tardir
 
echo "Cleaning up..."
rm -rf $tardir
echo "Done!"

3、执行“deployqtapp.sh”脚本,XXX表示在build-项目名称文件夹内的可执行文件名。

sh deployqtapp.sh XXX

例如我的Server就 

sh deployqtapp.sh Server

Linux下使用linuxdeployqt发布Qt程序

4、在build-项目文件夹内找到*_deploy压缩文件,解压后运行*_deploy文件夹内的可执行文件,运行成功即可。

写了一个shell脚本,上传到Linux下执行时报错

主要是换行引起的问题

我在windows下编辑然后上传到linux系统里执行的。.sh文件的格式为dos格式。而linux只能执行格式为unix格式的脚本。因为在dos/window下按一次回车键实际上输入的是“回车(CR)”和“换行(LF)”,而Linux/unix下按一次回车键只输入“换行(LF)”,所以修改的sh文件在每行都会多了一个CR,所以Linux下运行时就会报错找不到命令

我们可以通过vi编辑器来查看文件的format格式。步骤如下:
1.首先用vi命令打开文件

vi deployqtapp.sh  

在vi命令模式中使用 :set ff 命令
可以看到改文件的格式为fileformat=dos

3.修改文件format为unix
使用vi/vim修改文件format

命令:

:set ff=unix

或者:

:set fileformat=unix

然后

:wq

保存退出就可以了文章来源地址https://www.toymoban.com/news/detail-499287.html

到了这里,关于Linux下使用linuxdeployqt发布Qt程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux下打包发布QT程序,并运行在其他没有安装QT环境的linux系统上

    一、Linux下打包发布步骤如下 编译应用程序环境:ubuntu18.04版本 开发环境:Qt5.14.2 编译环境:gcc_64 要移植的电脑:ubuntu18.04版本,没有开发环境 第一步:打包依赖库 1、创建一个打包目录,把生成的可执行文件拷贝放在创建的打包目录下,这里我是创建了一个打包目录名称为

    2024年02月12日
    浏览(40)
  • 银河麒麟下,QT5.12.10、linuxdeployqt安装及DEB打包教程

    2.1.1.将“打包工具.tar.gz”解压,里面有两个文件 linuxdeployqt libz.so 2.1.2.在解压当前目录下输入一下命令: sudo cp ./linuxdeployqt /usr/local/bin sudo rm /usr/lib/aarch64-linux-gnu/libz.so sudo cp ./libz.so /usr/lib/aarch64-linux-gnu sudo chmod +x /usr/local/bin/linuxdeployqt 2.1.3.验证打包工具安装成功命令: $linu

    2024年02月04日
    浏览(157)
  • VS2022使用ClickOnce发布程序本地安装.net框架

    因为遇到下面的错误,没有在网上搜到详细解决问题的教程,费了一些时间才解决了问题,特此记录一下,也希望能帮助到其他人。  要在“系统必备”对话框中启用“从与我的应用程序相同的位置下载系统必备组件”,必须将“.NET 桌面运行时 6.0.14 (x64)”项的文件“net6de

    2024年02月02日
    浏览(47)
  • 怎么发布QT程序的绿色版

    记录一下,用QT Creator写窗口程序,编译好了以后在输出目录直接点击exe都会提示缺少各种dll 处理非常简单,在开始菜单找到QT相关的命令控制台你,如下, 注意不要选择错了(这个非常关键,如果你是用VC++编译器选下面的,如果用的MinGW就选上面的) 进来以后进入到你编译

    2024年02月11日
    浏览(78)
  • Linux(Ubuntu)+Qt+C++与OpenCV窗体程序使用

    程序示例精选 Linux(Ubuntu)+Qt+C++与OpenCV窗体程序使用 如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助! 这篇博客针对Linux(Ubuntu)+Qt+C++与OpenCV窗体程序使用编写代码,代码整洁,规则,易读。 学习与应用推荐首选。 功能:Linux(Ubuntu)+Qt+C++与Ope

    2024年02月13日
    浏览(39)
  • Qt Quick程序的发布|Qt5中QML和Qt Quick 的更改

    # Quick程序的发布旧版做法 # Qt5中QML和Qt Quick 的更改 1.QML语言的更改(Qt4-Qt5)     在QML语言中,只有少量更改会影响QML代码的迁移:无法直接导入单独的文件(例如:import\\\"MyType.qml”),需要导人该文件所在的目录;     JavaScript文件中的相对路径被解析为相对于该JavaScrip

    2024年01月25日
    浏览(50)
  • 16-4_Qt 5.9 C++开发指南_Qt 应用程序的发布

    用 Qt 开发一个应用程序后,将应用程序提供给用户在其他计算机上使用就是应用程序的发布。应用程序发布一般会提供一个安装程序,将应用程序的可执行文件及需要的运行库安装到用户计算机上,即使用户计算机上没有安装 Qt 也能正常运行安装的程序。 Qt的应用程序发布

    2024年02月14日
    浏览(61)
  • Qt 打包发布程序,解决找不到msvcp140.dll等动态库问题正确方案

    Remember to call vcvarsall.bat to complete environment setup! Warning: Cannot find Visual Studio installation directory, VCINSTALLDIR is not set. Qt 找不到 msvcp140.dll, msvcp140d.dll, vcruntime140.dll, vcruntime140d.dll, ucrtbased.dll 当你用 MSVC编译器编写的程序 ,在使用Qt的打包工具windeployqt.exe时,在终端第二行会看到 “R

    2024年02月03日
    浏览(59)
  • Tauri开发的程序,使用github action快速跨平台编译并发布流程,包括Windows、mac、m芯片、linux等,以及常见报错

    Tauri 严重依赖原生库和工具链,因此目前无法在某一平台实现交叉编译。最佳选择是使用托管在 GitHub Action、Azure Pipelines、GitLab 或其他选项上的 CI/CD 管道进行编译。管道可以同时为每个平台运行编译,使编译和发布过程更加容易。 为了便于设置,官方目前提供 Tauri Action。

    2024年02月10日
    浏览(70)
  • 【 Qt 的“前世”与“今生”】Qt 的起源 | Qt 的发展历程 | 为什么选择 Qt | Qt 的授权模式 | Qt 版本选择 | Qt Widgets和QML | Qt 程序发布

    目录 1、什么是 Qt ? 2、Qt 可以用来做什么? 3、Qt 的由来与发展 3.1、Qt 的起源与发展 3.2、Qt 发展经历的三家公司 4、为什么选择 Qt ? 5、Qt 支持的平台 6、Qt 的授权模式 7、Qt 版本的选择 8、选择 QML 还是 Qt Widgets? 8.1、什么是 Widgets ? 8.2、什么是 QML ? 8.3、Widgets 与 QML 工程

    2024年02月05日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包