• 5468阅读
  • 5回复

请教一个关于paintEvent绘制的问题 [复制链接]

上一主题 下一主题
离线tfangxin
 
只看楼主 倒序阅读 楼主  发表于: 2010-11-11
— 本帖被 XChinux 执行加亮操作(2010-11-11) —
paintEvent中绘制了两个图形, 添加了两个图片
程序编译运行后可以全部显示如1,但直接打开debug下的exe文件却只能显示绘制的图形 不能显示图片,如2。 请教是什么原因呢?
void MyClass::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);

    QPainterPath path;
    path.addEllipse(100,100,50,50);
    path.lineTo(200,200);
    painter.setPen(Qt::green);
    painter.setBrush(Qt::yellow);
    painter.drawPath(path);
    QPainterPath path2;
    path2.addPath(path);
    path2.translate(100,0);
    painter.drawPath(path2);

    QPixmap pixmap1("Resources/1.png");
    QPixmap pixmap2("Resources/2.png");
    painter.drawPixmap(10,10,pixmap2);
    painter.drawPixmap(10,10,pixmap1);
}
离线dbzhang800

只看该作者 1楼 发表于: 2010-11-11
1. 不要将这类的IO操作放到 paintevent 中
     QPixmap pixmap1("Resources/1.png");
    QPixmap pixmap2("Resources/2.png");

2. 如果不了解 “工作目录”,不要使用相对目录
离线tfangxin
只看该作者 2楼 发表于: 2010-11-11
那请问有什么好的解决办法吗 我把图片放到上一级目录下
QPixmap pixmap1("1.png");
    QPixmap pixmap2("2.png");
也还是出现同样的情况~~
离线dbzhang800

只看该作者 3楼 发表于: 2010-11-11
引用第2楼tfangxin于2010-11-11 16:26发表的  :
那请问有什么好的解决办法吗 我把图片放到上一级目录下
QPixmap pixmap1("1.png");
    QPixmap pixmap2("2.png");
也还是出现同样的情况~~

既然你坚持相对路径,那就先搞清楚“程序工作目录” “程序所在目录” 等概念吧
离线roywillow

只看该作者 4楼 发表于: 2010-11-11
如果直接运行debug下的程序,要将图片放到这个文件夹下……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线tfangxin
只看该作者 5楼 发表于: 2010-11-12
谢谢了~~
快速回复
限100 字节
 
上一个 下一个