QT 添加资源.qrc文件(My Sources File 图片 音频 支持翻译的.qm文件)

74 篇文章 66 订阅 ¥399.90 ¥99.00

QT 添加资源 .qrc文件

我们只用QT做项目,一般会用到一些图片,声音灯资源,在项目中添加资源可以写绝对路径,也可以将资源添加到我们项目中,在后期打包的时候,也方便。

步骤如下:

1.准备添加资源

在这里插入图片描述

2.确认添加 点击完成

在这里插入图片描述

3.添加资源路径

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
如果你想一次性修改 qrc 中所有图片的颜色,可以使用 Qt资源编译器(rcc)结合 Qt 的图像处理类 QImage 和 QColor 来实现。具体步骤如下: 1. 在 Qt Creator 中打开 qrc 文件,并选择“打开外部编辑器”。 2. 在外部编辑器中,将所有需要修改颜色的图片都放在同一个文件夹下,并使用相同的命名规则,例如:icon1.png、icon2.png、icon3.png 等。 3. 在 Qt Creator 中打开 .pro 文件,并添加以下代码: ``` RESOURCES += resources.qrc RCC_TARGET = myapp_rc.cpp myapp_rc.cpp: resources.qrc rcc -name myapp $< -o $@ ``` 其中,resources.qrc 是你的 qrc 文件名,myapp 是你的应用程序名,myapp_rc.cpp 是生成的资源文件名。 4. 在你的代码中,使用 qRegisterMetaType 把 QColor 类型注册为元类型: ``` qRegisterMetaType<QColor>("QColor"); ``` 5. 在你的代码中,使用 QMetaObject::invokeMethod 调用修改颜色的函数: ``` QMetaObject::invokeMethod(qApp, "changeColor", Qt::QueuedConnection, Q_ARG(QColor, oldColor), Q_ARG(QColor, newColor)); ``` 其中,changeColor 是修改颜色的函数名,oldColor 是原来的颜色,newColor 是新的颜色。 6. 在你的代码中,实现修改颜色的函数: ``` void MyApp::changeColor(QColor oldColor, QColor newColor) { for (int i = 0; i < qrc_resource_count; i++) { const unsigned char *data = qrc_get_resource(i, &qrc_resource_size); QByteArray bytes(reinterpret_cast<const char *>(data), qrc_resource_size); QPixmap pixmap; pixmap.loadFromData(bytes); QImage image = pixmap.toImage(); for (int j = 0; j < image.width(); j++) { for (int k = 0; k < image.height(); k++) { QColor pixelColor = image.pixelColor(j, k); if (pixelColor == oldColor) { image.setPixelColor(j, k, newColor); } } } pixmap = QPixmap::fromImage(image); QByteArray ba; QBuffer buffer(&ba); buffer.open(QIODevice::WriteOnly); pixmap.save(&buffer, "PNG"); qrc_overwrite_resource(i, ba.constData(), ba.size()); } } ``` 其中,MyApp 是你的应用程序类名,qrc_resource_count 是 qrc资源的数量,qrc_get_resourceqrc_overwrite_resourceQt 提供的函数,用于获取和覆盖 qrc 中的资源。 7. 运行你的应用程序,调用修改颜色的函数即可。 注意:如果 qrc 中的图片太多,这种方法可能会影响应用程序的性能。而且,如果你要修改的颜色比较复杂,这种方法可能会导致图片质量下降。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光顶术士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值