• 4672阅读
  • 4回复

用以下方法显示图片,错在哪里? [复制链接]

上一主题 下一主题
离线止痛药
 
只看楼主 倒序阅读 楼主  发表于: 2009-06-05
请教高手:

我用以下方法显示图片:
void photo::paintEvent(QPaintEvent *event)
{
    int ret = 0;
    QImage image(":/image/movi.bmp");
    ret = image.isNull();
    QPainter painter(this);
    .............
}
写了如上代码,调试时,image.isNull()总是返回1,不怎么什么原因,请指点一下,本人刚开始学Qt,
最好给小弟写个得意的例子,看看。
再者,QImage image(":/image/movi.bmp");没有成功,怎么判断是哪里出了错?
离线shiroki

只看该作者 1楼 发表于: 2009-06-05
带冒号的形式是从qt的资源文件里载入。 你确定你的工程里有资源文件吗, 资源文件里有这个图片吗? 我看还是老老实实的从文件系统里载入比较妥当。 直接写绝对路径肯定能找到图片。
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线止痛药
只看该作者 2楼 发表于: 2009-06-05
多谢!

找到原因了,我的文件是在本地目录的,不是资源文件里的,有能用“:/xxxxx“

还有一个原因是路径的错误,可执行文件放在debug目录下,我的image目录和debug在同一层,应该用"../image/movi.bmp"

谢谢!

还有一事不明白。构造函数没有返回值,如果错误出在构造函数里,怎么判断错误类型?
离线dingzexin
只看该作者 3楼 发表于: 2009-06-07
谢谢楼主和斑竹。
"可执行文件放在debug目录下,我的image目录和debug在同一层",
这句话对我也有帮助。
离线forin
只看该作者 4楼 发表于: 2009-06-07
引用第2楼止痛药于2009-06-05 16:16发表的  :
还有一事不明白。构造函数没有返回值,如果错误出在构造函数里,怎么判断错误类型?
.......


我看不明白你的意思。。你的意思是说,构造函数执行出错是吧。

那你为什么不在构造函数里面直接判断程序执行出错呢?

建议你一个函数做一个事情。。。构造函数只是做一些基本的初始化工作,别将一大段的代码都贴在构造函数里面。。
快速回复
限100 字节
 
上一个 下一个