欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > QT学习笔记1

QT学习笔记1

2025/3/19 9:43:25 来源:https://blog.csdn.net/weixin_69851948/article/details/146339946  浏览:    关键词:QT学习笔记1

** Qt Creator开发环境配置**
  1. 安装流程(Windows平台)

    下载与安装

    1. 访问Qt官网,下载在线安装工具Qt Online Installer
    2. 登录或注册Qt账号,选择开源版本(需勾选“接受协议”)。
    3. 勾选组件:
      • 核心组件Qt 5.15.x(建议选择MSVC或MinGW套件)。
      • 工具链Qt CreatorQt DesignerQt Assistant
      • 附加工具CMakeNinja(可选)。
    • 环境验证
      打开Qt Creator,进入工具→选项→Kits,确认自动检测到编译器(如Desktop Qt 5.15.2 MSVC2019 64bit)。
  2. 界面组成与核心功能

    • 六大模式

      模式功能说明
      欢迎模式快速访问示例项目、教程、市场插件。
      编辑模式代码编写与调试,支持语法高亮、代码补全(快捷键Ctrl+Space)。
      设计模式集成Qt Designer,可视化拖拽UI控件(.ui文件操作)。
      调试模式断点调试、变量监控(快捷键F5启动)。
      项目模式管理构建配置(Debug/Release)、外部依赖。
      帮助模式集成Qt助手,搜索API文档(如输入QWidget查看类说明)。
    • 内置工具链

      • Qt Designer:设计UI界面,生成.ui文件(XML格式),支持信号槽预连接。
      • Qt Linguist:多语言翻译工具,管理.ts翻译文件。
      • Qt Assistant:离线文档库,支持关键词搜索与书签功能。

Hello World全流程开发
  1. 新建Qt Widgets项目

    • 操作步骤

      1. 点击文件→新建项目→Qt Widgets Application
      2. 设置项目名称(如Demo1)和路径,选择基类(QMainWindowQWidget)。
      3. 确认构建套件(如Desktop Qt 5.15.2 MSVC2019 64bit)。
    • 项目文件解析

      • .pro
        

        文件:

        qmake

        QT += core gui          # 依赖的核心模块
        greaterThan(QT_MAJOR_VERSION, 4): QT += widgets  # Qt5+需添加widgets模块
        TARGET = Demo1          # 生成的可执行文件名
        TEMPLATE = app          # 项目类型(应用程序)
        SOURCES += main.cpp     # 源文件列表
        HEADERS += mainwindow.h # 头文件列表
        FORMS += mainwindow.ui  # UI文件列表
        
  2. 界面设计与信号槽连接

    • Qt Designer操作

      1. 双击mainwindow.ui进入设计模式,拖拽控件(如按钮、标签)。
      2. 设置对象名(如pushButton)和属性(如文本、大小)。
      3. 右键按钮→转到槽,选择clicked()信号生成槽函数框架。
    • 代码对比

      IDE自动生成

      cpp

      // mainwindow.cpp(自动生成)
      void MainWindow::on_pushButton_clicked() {ui->label->setText("Hello Qt!");
      }
      

      手动编码

      cpp

      // 手动创建按钮并绑定信号槽
      QPushButton *btn = new QPushButton("点击", this);
      connect(btn, &QPushButton::clicked, [=](){qDebug() << "按钮被点击";
      });
      
  3. 编译与发布

    • 调试运行:点击构建→运行(快捷键Ctrl+R)。

    发布打包

    • Windows:使用

      windeployqt
      

      工具自动打包依赖的DLL:

      bash

      windeployqt Demo1.exe --release --no-translations
      
    • Linux:需配置LD_LIBRARY_PATH或静态编译。


** 窗口部件与GUI组件**
  1. QWidget核心功能

    • 窗口类型与属性

      cpp

      QWidget *window = new QWidget;
      window->setWindowTitle("主窗口");      // 标题
      window->resize(400, 300);            // 初始尺寸
      window->setWindowFlags(Qt::Dialog);  // 设置为对话框样式
      window->show();                      // 显示窗口
      
    • 模态与非模态对话框

      cpp

      // 模态对话框(阻塞父窗口)
      QDialog dialog(this);
      dialog.exec();// 非模态对话框(独立运行)
      QDialog *dialog = new QDialog(this);
      dialog->show();
      
  2. 常用组件分类

    框架类(QFrame)

    cpp

    QFrame *frame = new QFrame(this);
    frame->setFrameStyle(QFrame::Box | QFrame::Raised); // 边框样式
    frame->setLineWidth(2);                             // 边框宽度
    

    输入类组件

    QLineEdit输入验证:cpp```cpp
    QLineEdit *edit = new QLineEdit(this);
    QRegExpValidator *validator = new QRegExpValidator(QRegExp("[0-9]{3}"), this);
    edit->setValidator(validator); // 限制输入3位数字
    ```
    
    QSpinBox数值调节:cpp```cpp
    QSpinBox *spinBox = new QSpinBox(this);
    spinBox->setRange(0, 100);      // 数值范围
    spinBox->setSingleStep(5);      // 步长
    spinBox->setPrefix("¥");       // 前缀
    ```
    
  3. 调试输出

    cpp

    qDebug() << "当前数值:" << spinBox->value();  // 输出到控制台
    

布局管理
  1. 布局管理器类型

    • 水平布局(QHBoxLayout)

      cpp

      QHBoxLayout *layout = new QHBoxLayout;
      layout->addWidget(btn1);
      layout->addWidget(btn2);
      layout->setSpacing(10);       // 控件间距
      layout->setContentsMargins(20, 20, 20, 20); // 边距
      window->setLayout(layout);
      
    • 网格布局(QGridLayout)

      cpp

      QGridLayout *grid = new QGridLayout;
      grid->addWidget(label1, 0, 0); // 第0行第0列
      grid->addWidget(edit1, 0, 1);  // 第0行第1列
      grid->addWidget(btn1, 1, 0, 1, 2); // 跨2列
      
  2. 部件大小策略

    常用策略

    cpp

    btn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); // 水平扩展,垂直固定
    

    拉伸因子

    cpp

    layout->setStretch(0, 1); // 第0个控件拉伸比例为1
    layout->setStretch(1, 2); // 第1个控件拉伸比例为2
    
  3. 高级布局技巧

    • 可扩展窗口
      使用QScrollArea包裹布局,当内容超出窗口时自动显示滚动条:

      cpp

      QScrollArea *scrollArea = new QScrollArea;
      scrollArea->setWidgetResizable(true);
      scrollArea->setWidget(mainWidget); // 将主控件放入滚动区域
      
    • 分裂器(QSplitter)

      cpp

      QSplitter *splitter = new QSplitter(Qt::Horizontal);
      splitter->addWidget(leftWidget);
      splitter->addWidget(rightWidget);
      splitter->setSizes({200, 400}); // 初始宽度比例
      
    • Tab键顺序设置
      在设计模式下点击编辑→编辑Tab键顺序,按逻辑顺序点击控件完成设置。


总结与练习建议

  1. 核心知识点
    • Qt Creator环境配置与项目创建流程。
    • 信号槽机制与手动/自动编码对比。
    • 布局管理器实现自适应界面。
  2. 推荐练习
    • 开发一个包含登录窗口和主窗口的应用,使用网格布局和信号槽传递数据。
    • 实现一个可动态调整大小的图片浏览器,结合QSplitterQScrollArea
  3. 注意事项
    • 避免直接修改ui_xxx.h文件,所有UI逻辑应在代码中动态调整。
    • 多平台开发时需测试不同编译套件(如MSVC/MinGW)的兼容性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词