当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : QT:用Qpainter的DrawPixmap方法无法显示图片
帖子发表于 : 2011-04-11 19:28 
头像

注册: 2008-10-17 17:42
帖子: 49
送出感谢: 0 次
接收感谢: 0 次
//函数原型: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);//显示图片
}



坐等高手援助。


_________________
霁月难逢,彩云易散。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: QT:用Qpainter的DrawPixmap方法无法显示图片
帖子发表于 : 2011-04-11 20:37 
头像

注册: 2008-10-17 17:42
帖子: 49
送出感谢: 0 次
接收感谢: 0 次
我找到原因了,把QPixmap image(":/bore.bmp");改成QPixmap image("bore.bmp");就行了。我在网上看到的地址写成:/bore.bmp形式,怎么在我这就不行呢?


_________________
霁月难逢,彩云易散。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: QT:用Qpainter的DrawPixmap方法无法显示图片
帖子发表于 : 2011-04-24 15:22 

注册: 2011-03-22 20:57
帖子: 11
送出感谢: 0 次
接收感谢: 1
":/bore.bmp"格式是qrc的,"bore.bmp"格式是文件系统的,可能是你的图片文件没有打包进qrc吧。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: QT:用Qpainter的DrawPixmap方法无法显示图片
帖子发表于 : 2011-04-25 17:31 
头像

注册: 2010-02-21 16:19
帖子: 434
地址: 大连
送出感谢: 1
接收感谢: 2
:/这种写法是在The Qt Resource System里面找,也就是你打包进qrc里面的文件。
而直接写文件名则是在当前目录下面找。


_________________
大连Linux User Group: http://groups.google.com/group/dalian-lug?hl=zh-CN


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译