QT遇到资源文件不显示的问题这样解决

在QT开发中,遇到资源图片无法显示的情况,主要问题可能在于后缀名的大小写错误和路径中的符号使用不当。正确做法是确保后缀名的大小写匹配,并使用正确的资源路径(例如通过QT编辑器复制资源路径)。本文分享了QT新手在学习过程中遇到的问题及其解决方法。
本例来自B站传智教育QT从入门到实战的10手动调用绘图事件
widget.cpp文件
#include "widget.h"
#include "ui_widget.h"
#include<QPainter>
#include<QPixmap>
#pragma execution_character_set("utf-8")
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}
 void Widget::paintEvent(QPaintEvent *event)
 {
//     //实例化画家对象 this 指定的是绘图设备
//     QPainter painter(this);
//     //设置画笔
//     QPen pen(QColor(255,0,0));//写在前面很重要哦 set width
//     pen.setWidth(3);
//     //设置画笔风格
//     pen.setStyle(Qt::DotLine);
//     //让画家使用这个笔
//     painter.setPen(pen);
//     //画刷
//     QBrush brush(Qt::cyan);
//     brush.setStyle(Qt::Dense7Pattern);
//     painter.setBrush(brush);
//     //画线
//     painter.drawLine(QPoint(0,0),QPoint(100,100));
//     //画⚪
//     painter.drawEllipse(QPoint(100,100),50,50);
//     painter.drawRect(QRect(20,20,50,50));
//     //画文字
////     painter.drawText(QRect(10,200,150,50),"好好学习,天天向上");
//     ////////////////////高级设置///////////////////
//     QPainter painter(this);
//     painter.drawEllipse(QPoint(100,50),50,50);
//     //设置抗锯齿能力 效率会比较低
//     painter.setRenderHint(QPainter::Antialiasing);
//     painter.drawEllipse(QPoint(200,50),50,50);
//     //画矩形
//     painter.drawRect(QRect(20,20,50,50));
//     painter.translate(100,0);
//     //保存画家状态
//     painter.save();
//     painter.drawRect(QRect(20,20,50,50));
//     painter.translate(100,0);
//     //还原画家保存状态
//     painter.restore();
//     painter.drawRect(QRect(20,20,50,50));

     ///////////////利用画家画资源图片/////////
   QPainter painter(this);
   painter.drawPixmap(20,100,QPixmap("://image/1.png"));
 }
Widget::~Widget()
{
    delete ui;
}

在本例中需要利用画家画出资源图片

第一次没有顺利画出,有以下几点原因

1、注意后缀名格式

本例中如果使用了3.7PNG,在描绘的时候如果用如下代码是无法显示图片的,注意大小写

 painter.drawPixmap(20,100,QPixmap("://捕获/1.png"));

.png和.PNG是不同的。

2、注意/和\的区别

最简单的方法就是直接找到你想使用的资源文件(注意是已经添加进去的哦)

点击Open in Editor

找到你想使用的资源图片

鼠标右键、复制资源路径到剪切板

 这样的话一是比较方便,二是不容易出错。

QT新手,在学习路上总结遇到的问题,希望能对各位有一些帮助。

新人第一次发文章,文中有不正确的地方还请大家指正,理性交流沟通。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值