Qt入门笔记

Cealivanus Kwan Lv3

Qt 是一个跨平台的 C++ 框架,广泛用于开发图形用户界面(GUI)应用程序。以下是 Qt 入门的基本知识:

1. Qt 简介

  • 跨平台:支持 Windows、macOS、Linux、Android、iOS 等。
  • 模块化:包含 GUI、网络、数据库、多媒体等模块。
  • 信号与槽机制:用于对象间的通信。

2. 安装 Qt

  • 下载 Qt:从 Qt 官网 获取安装包。
  • 选择组件:安装时选择所需的 Qt 版本和工具,如 Qt Creator。
  • 配置环境:确保编译器(如 GCC、MSVC)和调试器已安装并配置。

3. Qt Creator

  • 集成开发环境(IDE):用于编写、调试和构建 Qt 项目。
  • 项目管理:支持创建和管理 Qt 项目。
  • 调试工具:内置调试器,支持断点和变量检查。

4. 基本概念

  • QObject:所有 Qt 对象的基类,支持信号与槽机制。
  • QWidget:所有 GUI 组件的基类。
  • 信号与槽:用于对象间通信,信号在事件发生时发出,槽是响应信号的函数。

5. 创建第一个 Qt 程序

  1. 新建项目:在 Qt Creator 中选择 “File” -> “New File or Project”,然后选择 “Qt Widgets Application”。
  2. 设计界面:使用 Qt Designer 拖放组件设计界面。
  3. 编写代码:在 main.cppmainwindow.cpp 中编写逻辑代码。
  4. 构建与运行:点击 “Build” -> “Run” 编译并运行程序。

6. 常用组件

  • QPushButton:按钮。
  • QLabel:文本标签。
  • QLineEdit:单行文本输入框。
  • QTextEdit:多行文本输入框。
  • QComboBox:下拉列表框。
  • QCheckBox:复选框。
  • QRadioButton:单选按钮。

7. 布局管理

  • QHBoxLayout:水平布局。
  • QVBoxLayout:垂直布局。
  • QGridLayout:网格布局。
  • QFormLayout:表单布局。

8. 信号与槽

  • 连接信号与槽:使用 connect 函数。
    1
    connect(sender, &Sender::signal, receiver, &Receiver::slot);
  • 自定义信号与槽:在类中声明信号和槽,使用 signalsslots 关键字。

9. 资源文件

  • qrc 文件:用于管理应用程序资源,如图片、图标。
  • 使用资源:在代码中通过 :/ 前缀访问资源。

10. 调试与发布

  • 调试:使用 Qt Creator 的调试工具设置断点、检查变量。
  • 发布:使用 windeployqt(Windows)或 macdeployqt(macOS)打包应用程序。

11. 学习资源

  • 官方文档Qt Documentation
  • 教程:在线教程和书籍,如《C++ GUI Programming with Qt 4》。
  • 社区:Qt 论坛和 Stack Overflow。

示例代码

以下是一个简单的 Qt 程序示例,显示一个窗口和一个按钮:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <QApplication>
#include <QPushButton>
#include <QWidget>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

QWidget window;
window.setWindowTitle("Hello Qt");

QPushButton button("Click Me", &window);
button.setGeometry(50, 50, 100, 30);

window.show();

return app.exec();
}

个人笔记:

右栏 属性编辑器 windowTitle 表示页面标题

左栏:LineEdit 输入框

​ Button 按键

​ label 文字标签

按键反应:e.g. 退出按键:

  • 标题: Qt入门笔记
  • 作者: Cealivanus Kwan
  • 创建于 : 2024-12-24 13:58:36
  • 更新于 : 2025-03-10 11:50:17
  • 链接: https://redefine.ohevan.com/2024/12/24/Qt入门笔记/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。