QT入门操作

本文介绍了Qt,一个基于C++的图形用户界面开发框架,涵盖从GUI编程基础、QtCreator使用、项目设置到调试技巧等内容,强调其跨平台优势和面向对象开发特性。
摘要由CSDN通过智能技术生成

1-Qt简介

  1. Qt是什么?

这门课程的定位:

  • C++的实践课。
  • 系统性的认识图形用户界面编程
  • 新的就业方向

Qt是一个基于C++的图形用户界面(GUI)开发框架,但是Qt不仅仅能开发界面,还包括很多传统编程中的计数:多线程、数据库、图像处理、网络通信、文件IO。。。。。等等。

以下是Qt开发的具体产品:

等等等,包含但不限于以上场景。

Qt主要的优势是优良的跨平台特性(一次编程,到处编译)。

比如说:windows、linux、android、SunOS。。。。。。等等

另外Qt也拥有一些常规特性:

  • 面向对象开发(使用C++进行编程)
  • 丰富的API调用接口,配套了对应的开发文档。
  • 开源(源代码开放,学习资料多)。

 欧路词典下载C++/Qt常用词汇

2、新建项目

本次Qt仍然使用C++课程中的Qt Creator,先更改编码,改为UTF-8

更改完成后,创建正常的支持中文的Qt项目了。操作步骤如下:

  1. 在Qt Creator中点击
  2. 在弹出的窗口中,按照下图所示进行操作。

  1. 在弹出的窗口中设置项目名称和路径,注意不能包含中文字符。可以设置默认的项目路径。

  1. 直接点击下一步

  1. 在弹出的窗口中,选择基类为“QDialog”,取消“创建界面”选项,然后点击 “下一步”。

  1. 在项目管理界面,直接点击完成,可以看到项目中包含的文件。

  1. 点击可以编译并运行项目,项目运行之后可以看到一个可视化的窗口。

3、构建目录和工作目录

项目运行之后,存在两个重要的目录:构建目录和工作目录

3.1 构建目录

存放项目编译过程中生成的文件,这个目录的位置:

如果新创建的项目无法正常运行:

解决方法1:

如果排查了各种问题仍然无法解决,可以尝试取消Shadow build选项,此时项目目录会与工程目录,合二为一,不建议正常使用的用户这样操作。

构建目录在课程最后一天会重点涉及,前期用的比较少。

3.2 工作目录

工作目录就是创建项目时设置的目录,用于存放源代码文件,开发配置文件等。

工作目录可以通过下面这种方式定位:

工作目录中包含的文件有:

本门课程的作业提交方式为工作目录打包。

4、项目结构

4.1 项目配置文件.pro

在windows的文件管理器中,直接双击.pro文件即可导入项目。

4.2 用户文件.user

用户文件在Qt Creator中不可见,但是确实存在于工作目录中。(项目构建后)。

此文件时Qt 根据当前计算机的开发环境自动生成的文件,每个计算机几乎不通用此文件,因此在提交代码时,先删除此文件。

4.3 主文件 main.cpp

程序的入口,包含主函数,通常不需要改动主文件代码。

#include "dialog.h"
// QApplication 类管理GUI应用程序的控制流和主设置
#include <QApplication>
int main(int argc, char *argv[])
{
    // 创建了一个管家类对象(栈内存)。管理整个应用程序
    QApplication a(argc, argv);
    // 创建了一个自定义对话框窗口类的栈内存对象
    Dialog w;
    // 显示(显示窗口)
    w.show();
    // 进入主时间循环
    return a.exec();
}

4.4 头文件dialog.h

在Qt中一个自定义类的声明都写在.h中,这个类用到的所有其它类的头文件,也在此文件中引入。

#ifndef DIALOG_H
#define DIALOG_H
// 添加头文件QDialog对话框基类,Qt自带类型通常使用Q开头
#include <QDialog>
// 自定义对话框类
// 继承于QDialog类
class Dialog : public QDialog
{
    // 先放着
    Q_OBJECT
public:
    Dialog(QWidget *parent = 0);    // 构造函数
    ~Dialog();      // 析构函数
};
#endif // DIALOG_H

4.5 源文件dialog.cpp

包含与同名头文件配套的类外定义。

#include "dialog.h"
// 构造函数定义
// parent 参数
Dialog::Dialog(QWidget *parent): QDialog(parent)   // 透传构造
{
}
// 析构函数类外定义
Dialog::~Dialog()
{

}

5、帮助文档

学习Qt一定要学习如果查询文档,通常对于不是很常用内容在编程开发当中都是随用随查的。官方文档就是第一手资料。

有三种查询文档的方式:

1、直接启动Assistant,是一个独立的文件程序。

打开Assistant程序后,点击索引,在输入框中输入想要查询的内容即可。

2、在Qt Creator中直接点击帮助,可以打开一个内嵌的Assistant程序

3、 光标定位到要查询的内容上,双击键盘F1,可以直接跳到对应的文件内容。

6、调试信息

在C语言或者C++中,无论是printf或Cout输出的内容都不分前后台,但是Qt中输出内容是区分前后台的。通常前台指的是图形用户界面,用户可以直接通过软件界面看到。

后台值是在Qt Creator的(控制台)中,这里显示的信息用户是不可见的,只对开发者开放。

如果想输出到后台,需要使用QDebug类的qDebug() 函数输出调试信息,支持中文输出,整个的使用方式与cout类似,但是有以下区别:

  • 连续输出时,自动添加空格。
  • 每处输出语句结束时,自动添加换行。

输出到后台:QDebug类的qDebug() 函数输出调试信息

dialog.h

#ifndef DIALOG_H
#define DIALOG_H

// 添加头文件QDialog对话框基类,Qt自带类型通常使用Q开头
#include <QDialog>
#include <QDebug>

// 自定义对话框类
// 继承于QDialog类
class Dialog : public QDialog
{
    // 先放着
    Q_OBJECT

public:
    Dialog(QWidget *parent = 0);    // 构造函数
    ~Dialog();      // 析构函数
};

#endif // DIALOG_H

dialog.cpp

#include "dialog.h"

// 构造函数定义
// parent 参数
Dialog::Dialog(QWidget *parent)
    : QDialog(parent)   // 透传构造
{
    qDebug() << "构造函数 hello world";
}

// 析构函数类外定义
Dialog::~Dialog()
{

}

7、注意

当程序运行时,再次运行可能会出现下面的情况,只需要关闭当前运行的项目,重新运行即可。

  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

满山的猴子我的腚最红

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值