qt_tutorial

Qt版本:Qt 6.7.2 项目配置

本教程参考哔哩哔哩系列视频
help -> about qt creater查看版本

在Qt中创建一个GUI项目

step 1: choose a template

选择一个模板,这里选择一个空的模板
Qt widgets application

  • 可以看到有图标,根据图标大概能知道这个模板是什么模板
  • 右边也会有对模板的描述

step 2: Project location

选择你的文件位置,命名的你文件名字

step 3: Define Build System

  • 选择CMake,可以参考这里
  • 什么是[[CSC3002/01_CSC3002_note/Build system|Build system]]
  • 我跟教程走,选择qmake
  • 项目管理文件qmake -> .pro文件; cmake -> CMakeLists.txt文件

step 4: class information

widget: used to refer to any small device that you do not know the name of(不知名的)小器物,小装置,小玩意儿( informal ) from oxford

  • widget空窗口(只有窗口标题)
    • mianWindow主窗口(菜单栏等)
    • dialog对话框(有Yes or no的选项)
  • 建议类名选择大写开头
  • 勾选后有widget.ui的文件,这个文件会有ui的信息
    选择翻译后的语言,存储在zh_CN.qm文件中,我们用英文开发,有中文的语言包

step 5: Kit selection

编译套件的选择,选择Qt自带的编译器 MinGW 64-bit

step 6: 版本控制系统选择

代码同步工具

  • SVN
  • GIT

finish

完成!
如果高版本的Qt可能出现报错和警告,尝试:help -- about plugins -- c++ -- ClangCodeModle取消勾选,重启软件。

效果展示:Hello world in Window

in widget.ui design中的窗口设计, 选择一个label和一个push button(the advantage of qt is that you can drag and drop to design the window))

trouble shooting

点击.pro多数能打开项目,因为qmake是默认的构建系统

点击CMakeLists.txt无法正常打开项目

确认cmake是否安装

  1. type cmake --version in cmd, 你会得到cmake的版本号
  2. else安装cmake from here

确认环境变量是否配置正确

  1. type echo %PATH% in cmd, 你会得到目前你所有的 PATH,检查qt是否在里面
  2. 注意:区分QtCreator 和 Qt,QtCreator是IDE,Qt是库
  3. 注意:Path在用户变量有时不会正常生效(Kimi的观点)设置在系统变量

issue查看configuration fail的原因

每个人的原因可能不一样

我的是build type的问题,我选择了debug,但是我的debug没有配置

  1. 清理构建目录clear CMake configuration:清理您的构建目录,以确保与构建缓存和配置无关的干净状态。您可以在 Qt Creator 中通过“构建”菜单中的“清理项目”选项清理构建目录。
  2. 重新配置项目run CMake:重新配置项目

尝试Qt自带的案例examples,感受项目的效果


p.s.

  • in left sidebar projectsyou see the calqlatre is in bold font, that means it is the current active project
  • you can see the compiling process in the compile output in the bottom
  • you can see the issues in the bottom, if there is any error, you can see it here
  • the calculator window will pop up after compiling
  • 先build (锤子)后 run (绿三角)

AI生成的回答(仅参考)

build debug /release 区别

Debug 构建:

  1. 编译优化:通常不进行优化或仅进行最小优化,以便于调试。
  2. 调试信息:包含完整的调试信息,如符号信息,这有助于调试器定位代码中的问题。
  3. 执行速度:由于没有优化,执行速度通常较慢。
  4. 错误检查:包含额外的错误检查和断言,有助于在开发过程中发现问题。
  5. 内存使用:可能会使用更多的内存,因为优化较少。
  6. 日志记录:可能会包含更详细的日志记录,以帮助追踪问题。
  7. 符号名称:变量和函数名称不会被优化掉,保持源代码中的名称,便于调试。

Release 构建:

  1. 编译优化:进行高度优化,以提高应用程序的性能。
  2. 调试信息:通常不包含调试信息,或只包含非常有限的调试信息。
  3. 执行速度:由于进行了优化,执行速度较快。
  4. 错误检查:错误检查和断言可能会被禁用或减少,以避免影响性能。
  5. 内存使用:优化内存使用,以减少应用程序的内存占用。
  6. 日志记录:日志记录可能会被禁用或减少,以避免影响性能。
  7. 符号名称:变量和函数名称可能会被缩短,以减少二进制文件的大小。

为什么需要不同的构建方式?

  • 开发和调试:Debug 构建提供了必要的调试信息和工具,帮助开发者在开发过程中发现和修复错误。
  • 性能测试:Release 构建通过优化提供了应用程序的最佳性能,这对于性能测试和最终用户是非常重要的。
  • 部署:最终用户通常使用 Release 构建,因为它提供了更好的性能和更小的二进制文件大小。

在实际开发过程中,开发者可能会在 Debug 模式下编写和测试代码,然后切换到 Release 模式进行性能测试和部署。

build和compile的区别

编译(Compile):

  1. 定义:编译是将源代码(通常是单个文件,如 .c.cpp 文件等)转换成机器码的过程,生成的目标文件通常具有 .obj 或 .o 扩展名。
  2. 编译器:编译过程通常由编译器完成,如 GCC、Clang、MSVC 等。
  3. 单个文件:编译通常针对单个源文件,将其从高级语言转换为低级语言。
  4. 语法检查:编译过程中,编译器会检查语法错误。
  5. 优化:编译器可能会对代码进行优化,以提高性能或减少生成的机器代码的大小。

构建(Build):

  1. 定义:构建是一个更广泛的过程,它包括编译、链接等多个步骤,将多个源文件和资源(如库文件、资源文件等)组合成一个可执行文件或库文件。
  2. 构建系统:构建过程通常由构建系统或构建工具管理,如 Make、CMake、MSBuild、Ant 等。
  3. 多个文件:构建过程涉及多个源文件和可能的库文件。
  4. 依赖管理:构建系统会管理文件之间的依赖关系,并确定编译的顺序。
  5. 链接:构建过程包括链接步骤,将编译后的目标文件与库文件链接在一起,生成最终的可执行文件或库文件。
  6. 自动化:构建过程可以自动化,通常通过编写构建脚本来定义构建的规则和步骤。

区别:

  • 范围:编译是构建过程中的一个步骤,构建是一个更全面的过程。
  • 目标:编译的目标是生成目标文件,而构建的目标是生成可执行文件或库文件。
  • 过程:编译过程关注单个源文件的转换,构建过程关注整个项目从源代码到可执行文件的完整流程。