Qt 读取并且显示SVG图片
Qt 显示 图片 读取 并且 SVG
2023-09-14 09:05:12 时间
SVG图片是一种可缩放的矢量图片,是一个开放的图片标准。是由xml格式定义一种文件。
svg图片文件具有以下优势:
- 基于xml语言
- 可在图像质量不下降的情况下被放大
- 比JPEG和PNG格式的文件要小很多
- 支持DOM
QT中有专门读取svg图片的类,下面演示以下通过QT读取svg图片并且显示在QTableWidget控件上。
1 void QtGuiSvg::slotLoadSvg() {
2 QString strPath = "E:/shoudu.svg";
3 QSvgRenderer* svgRender = new QSvgRenderer();
4 svgRender->load(strPath);
5
6 QPixmap* pixmap = new QPixmap(32,32);
7 pixmap->fill(Qt::transparent);//设置背景透明
8 QPainter p(pixmap);
9 svgRender->render(&p);
10
11 //1.直接采用控件显示
12 QLabel* label = new QLabel;
13 label->setPixmap(*pixmap);
14 label->setAlignment(Qt::AlignHCenter);
15 label->show();
16
17 ui.tableWidget->setColumnCount(2);
18 ui.tableWidget->setRowCount(2);
19 ui.tableWidget->setRowHeight(0, 32);
20
21 ui.tableWidget->setCellWidget(0, 0, label);
22
23 QtGuiSignal* s = new QtGuiSignal;
24 s->setPixmap(pixmap);
25 s->setText(QStringLiteral("红色闪闪的五角星"));
26 ui.tableWidget->setRowHeight(1, 80);
27 ui.tableWidget->setCellWidget(1, 0, s);
28
29 //2.直接显示图片
30 ui.tableWidget->setIconSize(QSize(32, 32));
31 ui.tableWidget->setItem(0, 1, new QTableWidgetItem(QIcon(*pixmap), QStringLiteral("红色闪闪的五角星")));
32 }
QtGuiSignal.ui
QtGuiSignal.h
1 #pragma once
2
3 #include <QWidget>
4 #include "ui_QtGuiSignal.h"
5 #include <QPixmap>
6
7 class QtGuiSignal : public QWidget {
8 Q_OBJECT
9
10 public:
11 QtGuiSignal(QWidget *parent = Q_NULLPTR);
12 ~QtGuiSignal();
13
14 void setPixmap(QPixmap* pixmap);
15 void setText(QString str);
16 private:
17 Ui::QtGuiSignal ui;
18
19 QPixmap* _pixmap;
20 QString _strText;
21 };
QtGuiSignal.cpp
1 #include "QtGuiSignal.h"
2
3 QtGuiSignal::QtGuiSignal(QWidget *parent)
4 : QWidget(parent) {
5 ui.setupUi(this);
6 }
7
8 QtGuiSignal::~QtGuiSignal() {
9 }
10
11 void QtGuiSignal::setPixmap(QPixmap* pixmap) {
12 _pixmap = pixmap;
13 ui.labelSvg->setPixmap(*pixmap);
14 }
15
16 void QtGuiSignal::setText(QString str) {
17 _strText = str;
18 ui.labelText->setText(_strText);
19 }
运行结果:
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓
相关文章
- python qt是什么_初识Python与Qt「建议收藏」
- Qt动画播放之QMovie类[通俗易懂]
- Qt开发笔记之QCustomPlot:QCustomPlot介绍、编译与使用
- C/C++ Qt 基本文件读写方法
- Qt自绘系列-曲线编辑器
- 聊聊QT添加MySQL驱动依赖的问题
- Linux系统使用Qt开发快速入门教程(linux下qt教程)
- Qt类库模块划分详解
- 使用Qt在Linux下执行命令(qt执行linux命令)
- Qt 实现 Linux 串口通信编程(qt串口linux)
- 开发基于Qt与Linux的多平台开发(qtlinux)
- Linux环境下Qt交叉编译实战(linux交叉编译qt)
- Linux 下 Qt 调试技巧(qt调试linux)
- 跨平台应用使用Qt开发Linux跨平台应用(qt开发linux)
- Qt 静态编译在 Linux 的实践(qt静态编译linux)
- Linux下Qt跃动编程之旅(linux下qt串口编程)
- 使用 Qt 连接 MySql (qt使用mysql)
- 的整合『使用 Qt 与MySQL实现创新性的数据库应用』(qt与mysql)
- Linux 下 Qt 安装教程(qt安装教程linux)
- 集成开发Linux与Qt集成开发:实现无缝交互(linux与qt)
- 如何在Linux上使用Qt编程:头文件的重要性(qtlinux头文件)
- Building Complex Database Applications Made Easy with Linux QT and SQL(linuxqtsql)
- 使用Qt框架插入MySQL中的数据(qt插入mysql)
- 如何在Linux上运行QT?(linuxqt运行)
- MySQL与Qt的无缝连接(mysql 连接qt)