码上通QT实战12--监控页面04-绘制6个灯珠及开关

1、前言

Qt中的绘图技术概述

Qt提供了多种绘图技术,适用于不同的应用场景。以下是Qt中常用的绘图技术及其特点。

QPainter绘图

QPainter是Qt中最基础的绘图类,支持在QPaintDevice子类(如QWidget、QImage、QPixmap)上绘制2D图形。

  • 支持绘制基本图形(点、线、矩形、椭圆等)
  • 支持变换(平移、旋转、缩放)
  • 支持画笔(QPen)和画刷(QBrush)样式设置
  • 支持文本绘制和字体设置

图形视图框架

Graphics View框架提供了管理大量自定义2D图形项的功能,适合需要处理大量图形元素的场景。

  • 基于场景(QGraphicsScene)-视图(QGraphicsView)-项(QGraphicsItem)架构
  • 支持项的选择、移动、缩放和旋转
  • 内置碰撞检测
  • 支持自定义图形项

OpenGL集成

Qt提供了对OpenGL的良好支持,适合需要高性能3D绘图的场景。

  • QOpenGLWidget:在Qt widget中嵌入OpenGL渲染
  • QOpenGLFunctions:提供OpenGL API访问
  • Qt Quick中的3D支持

Qt Quick绘图

Qt Quick提供了声明式的方式来创建用户界面,包括矢量图形绘制。

  • Canvas:类似HTML5 Canvas的绘图API
  • Shape:高性能矢量图形绘制
  • 粒子系统:创建视觉效果

Qt的绘图系统设计灵活,可以根据应用需求选择合适的技术组合,从简单的2D绘图到复杂的3D渲染都能胜任。

2、加油干

1、绘制部件

2、区域划分

在Qt中,嵌套布局指的是将多个布局管理器(如QHBoxLayoutQVBoxLayoutQGridLayout等)组合使用,形成层次化的界面结构。通过嵌套布局,可以实现复杂的界面设计,例如将水平布局嵌入垂直布局,或网格布局中嵌套其他布局。

嵌套布局的常见模式

水平与垂直布局嵌套

将水平布局嵌入垂直布局,或反之,适用于需要分组排列控件的场景。

网格布局嵌套

在网格布局的单元格中嵌入其他布局,适合需要对齐多行多列控件的场景。

布局比例控制

使用setStretchFactor()分配子布局或控件的拉伸比例,确保窗口缩放时界面协调。

cpp 复制代码
#include <QApplication>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPushButton>
#include <QLabel>

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

    QVBoxLayout *mainLayout = new QVBoxLayout(&window);
    QHBoxLayout *topLayout = new QHBoxLayout;
    QHBoxLayout *bottomLayout = new QHBoxLayout;

    mainLayout->addLayout(topLayout);
    mainLayout->addLayout(bottomLayout);

    topLayout->addWidget(new QLabel("Username:"));
    topLayout->addWidget(new QLineEdit);
    bottomLayout->addWidget(new QLabel("Password:"));
    bottomLayout->addWidget(new QLineEdit);

    window.setLayout(mainLayout);
    window.show();
    return app.exec();
}

这里的布局比较细致,需要好好适应研究一下。

3、提升部件

在Qt框架中,提升部件(Promoted Widgets)是一种将基础控件(如QWidget、QPushButton等)转换为自定义派生类的方法。通过这种方式,可以在Qt Designer中直接使用自定义类,而无需手动编写代码创建实例。通过提升部件,Qt Designer的界面设计与代码逻辑实现高效结合,提升开发效率。提升部件的作用

复用性:将自定义控件封装为可重复使用的组件。

可视化设计:在Qt Designer中直接拖放基础控件,并通过提升机制替换为自定义类。

简化开发:避免手动实例化自定义控件,减少代码量

4、运行测试

5、小结

QPainter是Qt中最基础的绘图类,支持在QPaintDevice子类(如QWidget、QImage、QPixmap)上绘制2D图形。

  • 支持绘制基本图形(点、线、矩形、椭圆等)
  • 支持变换(平移、旋转、缩放)
  • 支持画笔(QPen)和画刷(QBrush)样式设置
  • 支持文本绘制和字体设置
复制代码
原创不易,打字不易,截图不易,撸码不易,整理不易,走过路过,不要错过,欢迎点赞,收藏,转载,复制,抄袭,留言,灌水,请动动你的金手指,祝您早日实现财务自由。
相关推荐
i橡皮擦2 小时前
TheIsle恐龙岛读取游戏基址做插件(C#语言)
开发语言·游戏·c#·恐龙岛·theisle
bing.shao3 小时前
golang 做AI任务执行
开发语言·人工智能·golang
源代码•宸4 小时前
Golang语法进阶(协程池、反射)
开发语言·经验分享·后端·算法·golang·反射·协程池
basketball6164 小时前
python 的对象序列化
开发语言·python
fie88895 小时前
钢结构件制造车间生产调度实例:MATLAB实现(基于遗传算法)
开发语言·matlab·制造
沐知全栈开发5 小时前
PHP 安装指南
开发语言
Highcharts.js5 小时前
Highcharts Grid 表格/网格安装 |官方安装文档说明
开发语言·javascript·表格组件·highcharts·官方文档·安装说明·网格组件
Coder_Boy_6 小时前
基于SpringAI的在线考试系统-企业级软件研发工程应用规范实现细节
大数据·开发语言·人工智能·spring boot
lly2024066 小时前
SQL SELECT 语句详解
开发语言