码上通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)样式设置
  • 支持文本绘制和字体设置
复制代码
原创不易,打字不易,截图不易,撸码不易,整理不易,走过路过,不要错过,欢迎点赞,收藏,转载,复制,抄袭,留言,灌水,请动动你的金手指,祝您早日实现财务自由。
相关推荐
HyperAI超神经4 分钟前
在线教程|DeepSeek-OCR 2公式/表格解析同步改善,以低视觉token成本实现近4%的性能跃迁
开发语言·人工智能·深度学习·神经网络·机器学习·ocr·创业创新
R_.L14 分钟前
【QT】常用控件(按钮类控件、显示类控件、输入类控件、多元素控件、容器类控件、布局管理器)
开发语言·qt
Zach_yuan23 分钟前
自定义协议:实现网络计算器
linux·服务器·开发语言·网络
云姜.29 分钟前
java多态
java·开发语言·c++
CoderCodingNo38 分钟前
【GESP】C++五级练习题 luogu-P1865 A % B Problem
开发语言·c++·算法
陳103044 分钟前
C++:红黑树
开发语言·c++
一切尽在,你来1 小时前
C++ 零基础教程 - 第 6 讲 常用运算符教程
开发语言·c++
泉-java1 小时前
第56条:为所有导出的API元素编写文档注释 《Effective Java》
java·开发语言
weixin_499771551 小时前
C++中的组合模式
开发语言·c++·算法
初级代码游戏1 小时前
套路化编程 C# winform 自适应缩放布局
开发语言·c#·winform·自动布局·自动缩放