QT学习笔记(常用控件)

QT 学习笔记

一、QT GUI 类继承体系

QObject(基类)
└── QWidget(所有可视化控件基类)
    ├── QAbstractButton(按钮类基类)
    │   ├── QPushButton
    │   ├── QRadioButton
    │   └── QCheckBox
    ├── QFrame(带边框控件基类)
    │   └── QLabel
    ├── QLayout(布局管理器基类)
    └── 其他控件类...

核心类说明:

  1. QObject:所有QT对象的基类,提供信号槽机制
  2. QWidget:所有可视化控件的基类,包含坐标、尺寸等基础属性
  3. QLayout:布局管理抽象类,派生出具体布局管理器

二、布局管理器

常用布局类型

布局类型 描述
QVBoxLayout 垂直排列控件(上下布局)
QHBoxLayout 水平排列控件(左右布局)
QGridLayout 网格状布局
QFormLayout 表单式布局(标签+输入)

使用要点

cpp

// 示例:创建垂直布局
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(new QPushButton("Button1"));
layout->addWidget(new QLineEdit);
setLayout(layout);  // 应用到窗口

三、输入输出控件

输出控件

  • QLabel:文本/图片显示
  • QProgressBar:进度条
  • QLCDNumber:数字显示屏

输入控件

控件类型 用途
QLineEdit 单行文本输入
QTextEdit 多行富文本编辑
QSpinBox 数字输入(带上下箭头)
QComboBox 下拉选择框

四、按钮类控件

常用按钮类型

  1. QPushButton:标准按钮
  2. QRadioButton:单选按钮(需配合QButtonGroup)
  3. QCheckBox:多选按钮
  4. QToolButton:工具栏按钮

按钮状态控制

cpp

QPushButton *btn = new QPushButton("Submit");
btn->setEnabled(false);  // 禁用按钮
btn->setIcon(QIcon(":/icon.png"));  // 设置图标

五、容器类控件

常用容器

  • QGroupBox:带标题的分组框
  • QTabWidget:标签页容器
  • QScrollArea:可滚动区域
  • QStackedWidget:堆叠式容器(多页面切换)

容器使用示例

cpp

QTabWidget *tabs = new QTabWidget;
tabs->addTab(new QTextEdit, "Document");  // 添加页面
tabs->setCurrentIndex(0);  // 设置默认页

六、信号与槽机制

核心概念

  • 信号(Signal):事件触发的信号(如按钮点击)
  • 槽(Slot):接收信号后执行的函数

连接方式

cpp

// 传统连接语法
connect(btn, SIGNAL(clicked()), this, SLOT(onClick()));

// Qt5+新语法(推荐)
connect(btn, &QPushButton::clicked, this, &MyClass::onClick);

// Lambda表达式连接
connect(btn, &QPushButton::clicked, [=](){
    qDebug() << "Button clicked!";
});

七、核心编程思想

  1. 对象树机制:父子对象自动管理内存
  2. 跨平台特性:一次编写,多平台编译运行
  3. MVC模式:数据-视图分离设计(适用于复杂控件)

学习建议

  1. 优先掌握QWidget的常用属性和方法
  2. 熟练使用Qt Designer进行界面设计
  3. 理解信号槽的线程安全机制
  4. 多参考Qt Assistant官方文档

你可能感兴趣的:(QT学习笔记,qt,学习,笔记)