QT从入门到实战_传智教育

QT从入门到实战_传智教育

1.Qt 简介

1.1 跨平台图形界面引擎

1.2 历史

  • 1.2.1 1991 奇趣科技

1.3 优点

  • 跨平台
  • 接口简单,容易上手
  • 一定程度上简化了内存回收

1.4 版本

  • 商业版
  • 开源版
1.5 成功案例
  • Linux 桌面环境
  • 谷歌地图
  • VLC 多媒体播放器

2.创建第一个 Qt 程序

2.1 点击创建项目后,选择项目路径以及给项目起名称

2.2 名称要求

  • 不能有中文
  • 不能有空格

2.3 路径要求

  • 不能有中文路径(会导致主页面无法加载)

2.4 默认创建有窗口类

  • 默认创建有窗口类,myWidget
  • 基类有三种选择:(QWidget、QMainWindow、QDialog)

2.5 main 函数

  • QApplication a 应用程序对象,有且仅有一个
  • myWidget w;实例化窗口对象
  • w.show() 调用 show 函数 显示窗口
  • return a.exec() 让应用程序对象进入消息循环机制中,代码阻塞到当前行

2.6 Qt .h头文件 解释

#ifndef MYWIDGET_H
#define MYWIDGET_H

#include <QWidget> // 包含头文件 QWidget 窗口类

class myWidget : public QWidget // myWidget 类 继承 QWidget
{
        Q_OBJECT // Q_OBJECT 宏,允许类中使用信号和槽的机制
public:
        myWidget(QWidget *parent = 0); // 构造函数
        ~myWidget(); // 析构函数
}
#endif // MYWIDGET_H

2.7 Qt .cpp文件 解释

#incluede "mywidget"

// 命名规范
// 类名 首字母大写,单词和单词之间首字母大写
// 函数名 变量名称 首字母小写,单词和单词之间首字母大写

// 快捷键
// 注释 Ctrl + /
// 运行 Ctrl + r
// 编译 Ctrl + b
// 字体缩放 Ctrl + 鼠标滚轮
// 查找 Ctrl + f
// 整行移动 Ctrl + Shift + ↑ 或者 ↓
// 帮助文档 F1
// 自动对齐 Ctrl + i
// 同名之间的 .h 和 .cpp 切换 F4
// 帮助文档的三种方式
        // 第一种 F1
        // 第二种 左侧按钮
        // 第三种 "Qt 安装目录"/Qt版本/版本/mingw49_32/bin/assistant.exe

myWidget::myWidget(QWidget *parent)
        : QWidget(parent)
{
        // 在此写代码
}
myWidget::~myWidget()
{

}

2.8 Qt5 基本模块

2.8.1 Qt Core
  • 核心
2.8.2 Qt GUI
  • 图形化界面
2.8.3 Qt Network
  • 网络通信
2.8.4 Qt Mulimedia
  • 多媒体
2.8.5 Qt Qtick Controls
2.8.6 Qt Quick Dialogs
2.8.7 Qt Widgets(*)
  • 版本 >= 5
  • greaterThan(QT_NAJOR_VERSION,4) : QT += widgets
2.8.8 Qt Webkit
  • 网页
2.8.9 Qt Test
  • 测试
2.8.10 Qt SQL
  • 数据库
2.8.11 Qt Quick
2.8.12 Qt QML
2.8.13 Qt Mukitmedia Widgets
  • 多媒体界面

3.按钮控件常用 API

3.1 创建 QPushButton

QPushButton *btn = new QPushButton();

3.2 设置父亲

btn.setParent(this);

3.3 设置文本

btn.setText("文字");

3.4 设置位置

btn.move(宽,高);

3.5 重新指定窗口大小

resize(宽,高);

3.6 设置窗口标题

setWindowTitle("标题");

3.7 设置窗口固定大小

setFixedSize(宽,高);

4.

进度:P7

7.自定义信号和槽

  • 7.1 自定义信号
    • 写到 signal 下
    • 返回 void
    • 需要声明,但不需要实现
    • 可以有参数,可以重载
  • 7.2 自定义槽函数
    • 返回void
    • 需要声明,也需要实现
    • 可以有参数,可以重载
    • 写到 public slot 下 或者 public 下 或者 全局函数下
  • 7.3 触发自定义信号
    • emit 自定义信号

8 当自定义信号和槽出现重载

  • 8.1 需要利用函数指针 明确指向函数地址
  • 8.2 void(Teacher:: * tSignal)(QString) = &Teacher::hungry;
  • 8.3 QString 转成 char *
    • .ToUtf8() 转为 QByteArray
    • .Data 转为 char *
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值