QT:用Qpainter的DrawPixmap方法无法显示图片

开发基于GTK+或QT的应用程序
回复
头像
carlself
帖子: 49
注册时间: 2008-10-17 17:42
送出感谢: 0
接收感谢: 0

QT:用Qpainter的DrawPixmap方法无法显示图片

#1

帖子 carlself » 2011-04-11 19:28

//函数原型:void QPainter::drawPixmap ( const QPoint & point, const QPixmap & pixmap, const QRect & source )把pixmap图片的source区域显示到显示到point点开始的区域


我的问题是画线和画空心矩形都成功了,但没能显示图片,当前文件夹下确实有这个图片。代码如下,只贴了主要文件,显示图片的代码在后3行,直接看最后的代码就行。


#include "MyImgTest.h"
#include <QPainter>
#include <QRect>
#include <QPoint>
#include <QPixmap>
MyImgTest::MyImgTest(QWidget* parent) : QWidget(parent)
{
setFixedSize(360,485); //固定大小
setWindowTitle("Hello DevDiv!");
}
MyImgTest::~MyImgTest()
{

}
void MyImgTest::paintEvent(QPaintEvent *)
{
QPainter painter(this); // 创建QPainter一个对象
QPen pen;
pen.setColor(Qt::black); // 设置画笔为黑色
painter.setPen(pen); // 设置画笔
painter.drawLine(QPoint(0,0),QPoint(28,28));//画一条黑色的线

// 画一个空心矩形
pen.setColor(Qt::darkRed);
painter.setPen(pen);
painter.drawRect(QRect(1, 1, 28, 28));

//显示图片的某个区域
QPixmap image(":/bore.bmp");//加载图片
QRect src(0,0,28,28);//截取图片的某个区域
painter.drawPixmap(QPoint(100,100),image,src);//显示图片
}



坐等高手援助。
霁月难逢,彩云易散。
头像
carlself
帖子: 49
注册时间: 2008-10-17 17:42
送出感谢: 0
接收感谢: 0

Re: QT:用Qpainter的DrawPixmap方法无法显示图片

#2

帖子 carlself » 2011-04-11 20:37

我找到原因了,把QPixmap image(":/bore.bmp");改成QPixmap image("bore.bmp");就行了。我在网上看到的地址写成:/bore.bmp形式,怎么在我这就不行呢?
霁月难逢,彩云易散。
stklv
帖子: 11
注册时间: 2011-03-22 20:57
送出感谢: 0
接收感谢: 1 次

Re: QT:用Qpainter的DrawPixmap方法无法显示图片

#3

帖子 stklv » 2011-04-24 15:22

":/bore.bmp"格式是qrc的,"bore.bmp"格式是文件系统的,可能是你的图片文件没有打包进qrc吧。
头像
lexdene
帖子: 434
注册时间: 2010-02-21 16:19
来自: 大连
送出感谢: 1 次
接收感谢: 2 次
联系:

Re: QT:用Qpainter的DrawPixmap方法无法显示图片

#4

帖子 lexdene » 2011-04-25 17:31

:/这种写法是在The Qt Resource System里面找,也就是你打包进qrc里面的文件。
而直接写文件名则是在当前目录下面找。
回复

回到 “GTK+和QT”