当前位置: 首页 > news >正文

QT肝8天17--优化用户管理

1、用户列表存在的不足

当前用户列表展示时的头像是固定写死的,新加或编辑时都不能指定图片作为头像,所以本节处理下这个不足,让新增或编辑时可以指定自己想要的头像,这就需要用到QT中的图片处理。

QT中的图片处理

QT提供了QImageQPixmapQPainter等类进行图片处理。QImage适合像素级操作,QPixmap适合界面显示,QPainter用于绘图操作,本节将要用到下面这些操作。

// 加载图片
QImage image("path/to/image.png");
QPixmap pixmap = QPixmap::fromImage(image);

图片缩放与裁剪

使用scaled()方法进行缩放,copy()方法进行裁剪。保持宽高比可设置Qt::KeepAspectRatio

// 缩放图片
QPixmap scaledPixmap = pixmap.scaled(100, 100, Qt::KeepAspectRatio);// 裁剪图片
QRect rect(10, 10, 50, 50);
QPixmap croppedPixmap = pixmap.copy(rect);

图片滤镜效果

通过操作像素或使用QGraphicsEffect实现滤镜效果。

图片保存与格式转换

使用save()方法保存图片,支持多种格式如PNG、JPEG。格式转换通过convertToFormat()实现。

// 保存为JPEG
image.save("output.jpg", "JPEG", 85);  // 85表示质量// 转换格式
QImage rgbImage = image.convertToFormat(QImage::Format_RGB888);

图片绘制与合成

通过QPainter在图片上绘制文字或合成多张图片:

高级图像处理

对于复杂操作(如边缘检测),可结合OpenCV或手动实现算法:

2、目标明确,马上行动

1、新添用户

界面调整如下图

头文件定义有关参数变量

QFileDialog

QFileDialog 是 Qt 框架提供的文件对话框类,用于实现文件选择、保存和目录选择功能。支持本地文件系统操作,可自定义过滤器、默认路径和对话框模式。


基本用法

打开文件对话框
通过 getOpenFileName 静态方法选择单个文件,返回文件路径:

QString fileName = QFileDialog::getOpenFileName(this,                 // 父窗口tr("Open File"),      // 对话框标题"/home",             // 默认目录tr("Text Files (*.txt);;All Files (*)")  // 文件过滤器
);

保存文件对话框
使用 getSaveFileName 保存文件:

常用选项

  • 文件模式:通过 setFileMode 设置行为,如 QFileDialog::ExistingFile(仅允许选择已存在的文件)。
  • 过滤器语法: RuntimeException 使用 ;; 分隔不同过滤器,例如:"Text (*.txt);;Images (*.png *.jpg)"
  • 默认扩展名:通过 setDefaultSuffix 为保存对话框添加默认扩展名。

注意事项

  • 路径分隔符应使用 / 而非 \ 以保证跨平台兼容性。
  • 静态方法会阻塞当前线程,若需非阻塞操作需使用实例化对象。

通过上述方法可灵活实现文件系统交互需求。

2、运行测试

QCoreApplication::applicationDirPath() 的用途

QCoreApplication::applicationDirPath() 是 Qt 框架中的一个静态函数,用于获取当前应用程序可执行文件所在的目录路径。该函数返回一个 QString 类型,表示应用程序的安装目录或运行目录。

适用场景

  • 需要加载与可执行文件位于同一目录下的资源文件(如配置文件、图片、数据库等)。
  • 构建相对路径,避免硬编码绝对路径。
  • 在跨平台开发中,确保路径兼容性(Windows、Linux、macOS 等)。
#include <QCoreApplication>
#include <QDebug>int main(int argc, char *argv[]) {QCoreApplication app(argc, argv);QString appDir = QCoreApplication::applicationDirPath();qDebug() << "Application directory:" << appDir;return app.exec();
}

3、编辑用户

修改界面窗体

处理选择图像的槽函数

 4、运行测试

5、小结

QPixmap 是 Qt 框架中用于处理图像的类,主要用于在屏幕上显示优化后的图像。它支持多种图像格式(如 PNG、JPEG、BMP 等),并针对显示性能进行了优化,适合直接渲染到界面控件(如 QLabel、QPushButton)或绘图设备(如 QPainter)。

与 QImage 的区别

  • 用途差异
    • QPixmap:专为显示优化,适合直接渲染到界面。
    • QImage:提供像素级访问,适合图像处理(如修改像素值)。

常见问题

  • 跨平台问题
    不同平台可能对图像格式支持有差异,建议优先使用 PNG/PNG 格式保证兼容性。
  • 内存泄漏
    避免频繁创建/销毁 QPixmap,可复用对象或使用智能指针管理生命周期
原创不易,打字不易,截图不易,撸码不易,整理不易,走过路过,不要错过,欢迎点赞,收藏,转载,复制,抄袭,留言,灌水,请动动你的金手指,祝您早日实现财务自由。

http://www.dtcms.com/a/441772.html

相关文章:

  • QT肝8天19--Windows程序部署
  • 【开题答辩过程】以《基于 Spring Boot 的宠物应急救援系统设计与实现》为例,不会开题答辩的可以进来看看
  • 成都seo网站建设沈阳网站建设推广服务
  • 网站栏目名短链接在线生成官网免费
  • Task Schemas: 基于前沿认知的复杂推理任务架构
  • 第三十七章 ESP32S3 SPI_SDCARD 实验
  • 企业营销型网站特点企业信息查询系统官网山东省
  • docker-compose 安装MySQL8.0.39
  • Go语言入门(18)-指针(上)
  • Django ORM - 聚合查询
  • 【STM32项目开源】基于STM32的智能老人拐杖
  • YOLO入门教程(番外):卷积神经网络—汇聚层
  • 网站改版一般需要多久智慧团建学生登录入口
  • Dotnet接入AI通过Response创建一个简单控制台案例
  • 【论文笔记】2025年图像处理顶会论文
  • 用 Maven 配置 Flink 从初始化到可部署的完整实践
  • 做职业规划的网站seo学院
  • 怎么建优惠券网站太原seo排名外包
  • jmeter中java.net.ConnectException: Connection refused: connect
  • “十四五”科技冲锋:迈向科技强国的壮阔征程
  • 使用 Python 进行自然语言处理的完整初学者指南
  • 框架系统的多维赋能——论其对自然语言处理深层语义分析的影响与启示
  • HCIP 和 HCIE到底是报班还是自学好?
  • 网站建设要多少钱国外服装设计网站
  • Spring配置文件XML验证错误全面解决指南:从cvc-elt.1.a到找不到‘beans‘元素声明
  • 做美食视频网站有哪些网架公司招聘施工队伍
  • Qwen3-Coder 实战:从 0 到 1 开发商业级 API 平台,过程开源!
  • 知识点-红帽Linux入门
  • 《C++进阶之C++11》【异常】
  • 电商网站怎么推广福州短视频seo获客