• 6311阅读
  • 9回复

用drawPixmap函数显示QPixmap无法显示 [复制链接]

上一主题 下一主题
离线ctsweeper
 

只看楼主 正序阅读 楼主  发表于: 2013-07-01
  1. void CEGuiDiagram::paintEvent( QPaintEvent *event )
  2. {
  3.     QPainter painter( this );
  4.     QPoint pixmapPt;
  5. pixmapPt.setX( minimumSize( ).width( ) * 0.1 );
  6. pixmapPt.setY( minimumSize( ).height( ) * 0.1 );
  7. mopPixDiagram = new QPixmap("my pixmap");
  8. mopPixDiagram->fill(Qt::black);
  9. p_view = QPixmap("My pixmap");
  10. p_view.fill(Qt::black);
  11. painter.drawPixmap( pixmapPt, p_view );
  12. }

我直接上了代码,好奇怪的事情是我把最后一行换成
  1. painter.drawLine(QPoint(0,0),QPoint(28,28));
就可以显示一条直线,但是为什么drawPixmap不能显示画面呢。


离线ctsweeper

只看该作者 9楼 发表于: 2013-07-01
回 8楼(dbzhang800) 的帖子
嗯,好的,用了size,多谢多谢!
离线dbzhang800

只看该作者 8楼 发表于: 2013-07-01
你的代码并不能说明你设置了合适的图片大小。

据我所知 , QWidget::minimumSize( ) 的大小默认也是 0,0
QPixmap::size() 可用来检验你的大小是否正确。

建议:多看看Manual。
离线ctsweeper

只看该作者 7楼 发表于: 2013-07-01
回 5楼(dbzhang800) 的帖子
6楼有设置大小,但是没法显示出来……
离线ctsweeper

只看该作者 6楼 发表于: 2013-07-01
回 2楼(dbzhang800) 的帖子
我弄错了,果然换了p_view = QPixmap("view.jpg"); 然后把view.jpg放到目录下,就可以了。

但是其实我的意思是自己画pixmap,但是没法显示。

比如:
p_view = QPixmap(minimumSize( ) * 0.8);
    p_view.fill(Qt::black);

但是没有显示黑色界面出来。
离线dbzhang800

只看该作者 5楼 发表于: 2013-07-01
Re:回 2楼(dbzhang800) 的帖子
引用第3楼ctsweeper于2013-07-01 10:56发表的 回 2楼(dbzhang800) 的帖子 :
可能是我理解的不对,QPixmap("My pixmap"); 我理解是给我的pixmap起个名字。
另外我只是想显示图片是否能显示出来。
我说一下我的原意吧,我想自己画pixmap,画柱状图在pixmap上。
我显示纯黑也只是想先给pixmap上个色,显示出来而已,结果我现在怎么也显示不出来。

你需要构造一个合适大小的pixmap
    QPixmap ( int width, int height )

而不是构造一个大小(0,0)的pixmap
离线ctsweeper

只看该作者 4楼 发表于: 2013-07-01
回 1楼(XChinux) 的帖子
嗯,我想设置背景色为黑色,然后显示出来。
离线ctsweeper

只看该作者 3楼 发表于: 2013-07-01
回 2楼(dbzhang800) 的帖子
可能是我理解的不对,QPixmap("My pixmap"); 我理解是给我的pixmap起个名字。
另外我只是想显示图片是否能显示出来。

我说一下我的原意吧,我想自己画pixmap,画柱状图在pixmap上。
我显示纯黑也只是想先给pixmap上个色,显示出来而已,结果我现在怎么也显示不出来。
离线dbzhang800

只看该作者 2楼 发表于: 2013-07-01
没看懂,下面代码目的是什么
p_view = QPixmap("My pixmap");
p_view.fill(Qt::black);

1.  "My pixmap" 到底是不是你当前目录下的有效的图片文件? 如果是,是何种格式的,为什么没有后缀呢?
2.
如果前面是有效的图片文件,为什直接填充黑色,目的是什么?
如果不是有效的图片文件,那么此时QPixmap本身无效,为何还要fill?
离线XChinux

只看该作者 1楼 发表于: 2013-07-01
p_view = QPixmap("My pixmap");
p_view.fill(Qt::black);


纯黑??
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个