Qt 教程

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.uidesign中的窗口设计, 选择一个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 #### 确认环境变量是否配置正确
  3. type echo %PATH% in cmd, 你会得到目前你所有的 PATH,检查qt是否在里面
  4. 注意:区分QtCreator 和 Qt,QtCreator是IDE,Qt是库
  5. 注意:Path在用户变量有时不会正常生效(Kimi的观点)设置在系统变量 #### 在issue查看configuration fail的原因 每个人的原因可能不一样 我的是build type的问题,我选择了debug,但是我的debug没有配置
  6. 清理构建目录clear CMake configuration:清理您的构建目录,以确保与构建缓存和配置无关的干净状态。您可以在 Qt Creator 中通过“构建”菜单中的“清理项目”选项清理构建目录。
  7. 重新配置项目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. 自动化:构建过程可以自动化,通常通过编写构建脚本来定义构建的规则和步骤。

区别:

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