这一章需要使用在控制台使用qmake

使用qmake的时候要先配置qmake的环境变量

找到qmake所在的目录,添加环境变量即可

在使用的时候要先跳转到源文件所在的目录

课本中说qmake可以自动检测到用户界面文件,并可以生成适当规则的makefile规则来调用Qt的用户界面编辑器(uic)

uic工具将会将ui文件转换成C++并且存储在我们所指定的文件名(*.h)中,也就是自动生成一个头文件,该头文件包含了函数实现

然而,在实际的使用中,通过命令行:

qmake -project
qmake

并不能得到对应的头文件,通过查询我发现使用nmake可以自动生成对应的头文件

但是,后面发现,在我删掉工程文件,生成的头文件和已经生成的makefile文件等之后,再一次使用相同的命令就无法生成对应的头文件

后面发现可以直接使用uic生成对应的文件,命令行如下:

uic <ui文件名> <头文件名>

在得到所有对应的文件后,使用Qt Creator打开资源目录,在项目窗口右键该文件夹,执行qmake,会自动加载其他的.cpp文件和.h文件

我执行qmake后发现一部分没有被自动添加,这是因为.pro文件中没有声明这部分文件,打开工程文件,在下面添加相应的文件名,在执行qmake就可以了

构建项目过程中,报错Link:不能解析的XXX,这是由于项目源文件和构建目录不是同一目录

点击项目,勾选Shadow build复选框,将构建目录改成源文件所在的目录,再次构建执行就可以了

程序构建的基本思路是:

  1. 使用Qt Designator设计一个ui,保存
  2. 使用uic生成相应的头文件,头文件中的类名就是Ui_顶级对象名
  3. 创建一个新的类,继承自uic生成的头文件中的类,在构造函数中调用setupUi(this)函数,初始化窗口内容
  4. 使用Qt Creator构建并运行程序

C++ Gui Qt4 第二章的更多相关文章

  1. C++ GUI Qt4 编程 (第二版)

    [加拿大]JasminBlanchette [英]MarkSummerfield . 电子工业 2008. 前几天的问题多是因为版本不兼容的问题. QT本身Q4 Q5就有版本问题,然后集成到VS08 ...

  2. 学习opencv中文版教程——第二章

    学习opencv中文版教程——第二章 所有案例,跑起来~~~然而并没有都跑起来...我只把我能跑的都尽量跑了,毕竟看书还是很生硬,能运行能出结果,才比较好. 越着急,心越慌,越是着急,越要慢,越是陌生 ...

  3. 第二章 Qt常用工具的介绍

    第二章 Qt常用工具的介绍 (1)No.1 qmake 相信编写过Makefile的开发人员,随着工程中源码的级数递增和以类型.功能.模块组织源码的子目录的增多,都不愿意重复机械地手工编写这个工程管理 ...

  4. 第二章排错的工具:调试器Windbg(上)

    感谢博主 http://book.51cto.com/art/200711/59731.htm <Windows用户态程序高效排错>第二章主要介绍用户态调试相关的知识和工具.本文主要讲了排 ...

  5. <自动化测试方案_2>第二章、自动化测试是什么?(What)

    第二章.自动化测试是什么?(What) 自动化测试是相对于手工测试而言:通过脚本自动去执行测试用例,从而代替人完成测试工作. 自动化测试相对手工测试优缺点 测试方式 优点 缺点 手工测试 1,完整的对 ...

  6. C++ GUI Qt4编程(10)-3.4spreadsheet

    1. C++ GUI Qt4编程第三章,增加spreadsheet. 2. spreadsheet.h /**/ #ifndef SPREADSHEET_H #define SPREADSHEET_H ...

  7. C++ GUI Qt4编程(09)-3.3spreadsheet-toolbar

    1. C++ GUI Qt4编程第三章,增加工具栏.状态栏和快捷键. 2. mainwindow.h /**/ #ifndef MAINWINDOW_H #define MAINWINDOW_H #i ...

  8. C++ GUI Qt4编程(08)-3.2spreadsheet-resource

    1. C++ GUI Qt4编程第三章,图片使用资源机制法. 2. 步骤: 2-1. 在resource文件夹下,新建images文件,存放图片. 2-2. 新建spreadsheet.qrc文件,并 ...

  9. C++ GUI Qt4编程(07)-3.1menu

    1. C++ GUI Qt4编程第三章,添加menu菜单. 2. mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include < ...

  10. C++ GUI Qt4编程(03)-1.3layout

    1. 根据C++ GUI Qt4编程(第二版)整理2. 系统:centos7:  Qt版本:5.5.13. 程序:layout.cpp #include <QApplication> #i ...

随机推荐

  1. http八股 跨域的本质 请求行 请求头 请求体 xss

    1小八股 介绍 http 请求分为三个部分,请求行,请求头,请求体 还有状态码的含义 https://juejin.cn/post/7096317903200321544 2tips Content- ...

  2. SpringCloud Stream消息驱动

    简单搭建,没有技术含量,Demo可用 1.介绍 ①产生原因 RabbitMQ.RocketMQ.Kafka.ActiveMQ 在一个项目中,可能存在多种不同的MQ,在不同的MQ中,切换维护开发都很麻烦 ...

  3. ChatGPT国内镜像模板,国内使用ChatGPT中文版本

    @ 目录 一.什么是ChatGPT国内镜像 二.ChatGPT国内镜像使用教程 免费ChatGPT镜像的功能: 三.ChatGPT中文版作用 四.怎么使用ChatGPT国内镜像 五.中文ChatGPT ...

  4. Distinct Paths

    代码 #include<cstdio> using namespace std; const int N = 20 , mod = 1e9 + 7 , K = 10; int f[N + ...

  5. [EULAR文摘] 超声腱鞘炎对RA早期诊断的价值

    超声腱鞘炎对RA早期诊断的价值 Sahbudin I, et al. EULAR 2015. Present ID: OP0015. 背景:为了预测早期未分化疾病发展为类风湿关节炎(RA), EULA ...

  6. Postgresql实现不同用跨模式访问

    1.修改参数 2.创建两个用户 创建a1 create user a1 connection limit-1 password '123456'; alter user a1 SUPERUSER; g ...

  7. SpringCloud微服务实战——搭建企业级开发框架(四十九):数据字典注解的设计与实现

      数据字典是系统中基本的必不可少的功能,在多种多样的系统中,数据字典表的设计都大同小异.但是使用方式确是多种多样,设计好一套易用的数据字典功能模块,可以使开发事半功倍. 常用的数据字典使用方式: 直 ...

  8. Django中多数据库的配置,实现分库分表,主从复制,读写分离

    在django项目中, 一个工程中存在多个APP应用很常见. 有时候希望不同的APP连接不同的数据库,这个时候需要建立多个数据库连接. 1. 修改项目的 settings 配置 在 settings. ...

  9. Servlet一笔记

    Servlet一笔记 一.web相关概念 1. 软件架构 目标 理解B/S 和 C/S的优缺点 讲解 C/S架构 C:Client,客户端:S:Server,服务器 比如:QQ,微信,网游 优点: 显 ...

  10. 同一ip地址不同的主机冲突解决

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HA ...