• Qt笔记(一)HelloWorld


    一、了解

    关于QT的一些了解:QT是什么,可以做什么,与其他GUI库的对比,QML概念

    二、下载

    参考:http://c.biancheng.net/view/3851.html,选一个国内镜像下载(比如中国科学技术大学),有5.9,5.12,5.13,5.14版本。目前官网长期支持的是5.12版,我下载的5.9版本exe文件,反正是为了学习目的,没有太大差别。

     三,安装

    按照 http://c.biancheng.net/view/3858.html 上的步骤,注意,5.9.0版本可以跳过Login,之后的好像就不行了,需要输入邮箱和密码。安装组件在图示基础上多勾选了msvc2017 64bit,教程中有相关组件的说明,可以自行决定勾选。

    注意:Windows上安装的QT只能使用MinGW 32bit编译器,只能编译32位程序,而使用msvc2017 64bit编译器可以编译64位程序。此外 msvc2017 64bit 会在VS中写QT程序的时候用到。

    这些模块都是可以改的,先不安装也没关系。

    四、HelloWorld

    Qt Creator介绍参考:http://c.biancheng.net/view/1804.html,类似VS,手感略差。

    按教程:http://c.biancheng.net/view/1817.html 写一个HelloWorld项目。

    注意构建目录这块,建议使用默认的构建目录,不然自己手动改了后多个编译器时比较麻烦。

    设计好UI界面后然后点击左下角小锤子编译,注意选择的编译器,然后运行,分别生成目录如下。

    MinGW 与MSVC的区别https://blog.csdn.net/a8039974/article/details/80573034

    注意:然后你就会发现点击运行按钮是正常的,但是直接在release目录下编辑运行exe时缺了好几个动态库

    这是由于安装的QT是动态编译的,也就是默认使用动态链接库,要想像MFC一样生成一个单独的exe,需要自己编译相关静态库,目前并不需要,以后有机会再编译。

    而从对应的编译器bin目录下把缺失的动态库复制过来后发现msvc编译器生成的可以正常运行了,而MinGW的仍然不行,因为这种方法并不规范,见下一步:部署

    五、部署

    动态编译的QT程序需要使用对应的部署工具部署后才能正常运行,部署过程中会把需要的所有动态库依赖拷贝到当前exe目录下

    参考:https://blog.csdn.net/qq_42701420/article/details/93787394

    windeployqt HelloWorld.exe

    注意:MinGW和MSVC编译的一定要用对应的部署工具,不能混用,否则会出现错误,程序无法启动,部署结果如下,然后点击exe就可以正常运行(关于程序图标下面再说)。

    MSVC编译器的部署结果要比MinGW的少一点

    注意:其实MSVC编译器生成的exe只要如图所示的三个动态库就可以运行,但是部署工具会加入很多其他的(原因下面再说)。

    六、VS中使用QT

    参考:https://blog.csdn.net/yxy244/article/details/94971602 安装好vs2017 QT插件,然后配好QT msvc编译器目录,就可以创建项目了

    注意:我在VS2017使用QT插件时遇见  https://blog.csdn.net/u013394556/article/details/89957175 的插件加载错误,原因是版本不匹配,使用第二种方案,更新VS后解决

    然后创建 HelloQt项目

    模块选择:创建项目时会要求选择需要的模块,有点像springboot,默认选择三个,这就是为什么上面msvc编译后只需要那三个dll就可以运行的原因

    当然这个模块可以在后面配置,从如下位置:

    注意:VS的这些属性配置是写在ProjectName.vcxproj文件中的, Qt Creator是直接写ProjectName.pro文件,两者差不多

    程序图标:下一步时勾选添加默认图标会生成对应的资源文件并使用

    资源文件:

    同理,VS的两个资源文件可以用在Qt Creator中,参考:https://blog.csdn.net/aicamel/article/details/81046047

    创建完成如图所示

    注意:在刚开始时Debug模式下可能会包图示的头文件找不到错误,原因是改头文件需要编译From Files后生成,不影响程序编译,或者切换到Release版本后就不会报错。

    然后对生成的exe文件使用 msvc windeployqt部署(可以先把三个动态库拷过来,错了再说)。

    七、结束

    VS和Qt Creato效果是一样的

  • 相关阅读:
    Java正则表达式入门
    StringBuffer ,String,StringBuilder的区别
    JAVA的StringBuffer类
    容器vector的使用总结 容器stack(栈)
    c++网络通信(与服务器通信聊天)和c#网络通信
    C#与SQLite数据库
    我的vim配置文件
    在world中批量调整图片的大小
    C#判断文件及文件夹是否存在并创建(C#判断文件夹存在)
    C# Thread类的应用
  • 原文地址:https://www.cnblogs.com/jixiaohua/p/12781024.html
Copyright © 2020-2023  润新知