QT开发笔记

一、基础概念

QWidget

继承 QObject,所有窗口控件的基类。凡是看得见的界面组件都是 QWidget。

窗口:独立弹窗(setWindowFlags)

子控件:嵌入在其他窗口内部的组件。

二、Qt 项目结构(Qt Widget)

新建 Qt Widget Application,自动生成 4 个核心文件:

  1. main.cpp:程序入口
cpp 复制代码
#include <QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv); //应用程序对象,必须有且仅有一个
    MainWindow w;
    w.show(); //显示窗口
    return a.exec(); //启动事件循环,等待鼠标、按钮等事件
}
  1. mainwindow.h:窗口头文件
  2. mainwindow.cpp:窗口实现
  3. mainwindow.ui:UI 设计师界面文件

三、核心:信号与槽 Signal & Slot

对象之间解耦通信机制,Qt 灵魂。

signal 信号:事件发生发出通知,只有声明没有实现,emit发射

slot 槽:响应信号的函数,可以普通成员函数、lambda

connect 连接:绑定信号和槽

cpp 复制代码
//Qt5函数指针写法(推荐,编译检查)
connect(ui->pushButton, &QPushButton::clicked, this, &MainWindow::slotFunc);

//Lambda匿名槽,简单逻辑首选
connect(ui->pushButton,&QPushButton::clicked,this,[=](){
    ui->label->setText("点击了");
});

参数规则:信号参数 >= 槽参数,参数类型必须对应。

第五个参数:连接类型,跨线程必须用Qt::QueuedConnection。

四、基础控件(QWidget 体系)

  1. 显示控件
    QLabel:显示文字、图片、GIF
    QPushButton:普通按钮
    QRadioButton:单选框;QCheckBox复选框
    QToolButton:工具栏图标按钮
  2. 输入控件
    QLineEdit:单行输入框,密码输入
    QTextEdit:多行富文本;QPlainTextEdit纯文本日志
    QComboBox下拉选择框
    QSpinBox/QDoubleSpinBox数字输入
    QSlider滑动条;QProgressBar进度条
  3. 容器控件(装其他控件)
    QGroupBox分组框
    QTabWidget标签分页
    QStackedWidget堆叠页面,同一位置切换界面
    QScrollArea滚动区域,内容超出出现滚动条
相关推荐
隔窗听雨眠7 分钟前
记一次SQL Server数据库性能分析:从CPU100%到单配置修复的完整诊断
开发语言·数据库·php
David猪大卫11 分钟前
【C++修炼】智能指针使用及原理
开发语言·c++·经验分享·笔记·学习·考研·面试
charlie11451419112 分钟前
现代Qt开发之图像处理进阶:像素操作与格式转换
开发语言·图像处理·qt
李永奉20 分钟前
中科蓝讯SDK开发-BT893x 面条耳机连接vivo手机后连接APP端,最后手机端设置页面手动断开蓝牙连接,此时耳机端假断开
c语言·开发语言·嵌入式硬件·物联网·智能手机·电脑
秦老师Q1 小时前
php零基础入门到实战,从语法到框架,一篇搞定
开发语言·php
驭渊的小故事2 小时前
多线程02
java·开发语言·jvm
阿里嘎多学长2 小时前
2026-09-09 GitHub 热点项目精选
开发语言·程序员·github·代码托管
君顾12 小时前
本地折扣卡 CPS 平台搭建:从系统架构到落地实战
java·开发语言·折扣卡
liangshanbo12153 小时前
手写 Function.prototype.call 与 Function.prototype.apply 面试题满分答案
开发语言·javascript·原型模式
Zenova EdgeOS3 小时前
C++ 工业边缘 libcurl HTTP 客户端实战
开发语言·c++·网络协议·边缘计算