免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1387 | 回复: 0
打印 上一主题 下一主题

QT4.5在redhat9下,不能正确填充图片问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-06 11:57 |只看该作者 |倒序浏览
    最近,因为有好几个项目都都要用到曲线图,所以决定认真把曲线图做成一个类。实现时,可以自由设定其它大小,刻度等一些参数。
    还以比较喜欢VS2003的集成开发环境,写代码,调试,都比在linux下方便,所以就索性在windows写。花了两天时间,曲线图做出来了。那就在linux跑一下吧,程序能编译通过,执行后,发现背景图片一个都没。问题就来了。。。
    考虑到这个类要自动适应不同大小,所以背景图,我全是用2*28等这样比较小的像素填充上去的,用的
void QPainter::drawTiledPixmap ( int x, int y, int width, int height, const
QPixmap
& pixmap, int sx = 0, int sy = 0 )
在windows上很正常,但在linux下主是画不出来,后来做了个小的测试,单独写了一个小程序,发现,当窗口比较大时,这些图片,有时根本画不出不,有时能画出一部分来,窗口小时,基本上都能画出来。还有就是,图片像素大点话,也有可能画出来。
    第一时间,想到的就是gcc版本太低,redhat9.0,自带的gcc是3.2.2。拿出自己的老笔记本(Dell D40都快成古董了,哈~),那个本子里以前装过ArchLinux+QTEmbedded4.3.4,gcc4, 编译、执行,一切正常。
    那应该就是gcc版本低的问题了,于是就开始进入安装gcc4的旅途。。。
    之前看过QT文档,里面提过,一些建议的gcc版本,和与之对应编译出来的库的大小。x86下,文档里写的是gcc4.2.4,那好吧,就装这个。
    总结一下gcc4.2.4在redhat9.0上的安装过程:
    一、cp gcc-4.2.4.tar.gz /tmp/
    二、tar zxvf gcc-4.2.4.tar.gz 解压出来gcc-4.2.4目录
    三、建立编译目录: mkdir gcc-4.2.4-build
    四、建立安装目录:mkdir /usr/local/gcc-4.2.4
    五、cd 到gcc-4.2.4-build,接下来的操作都是在这个目录下完成的
    六、配置:
../gcc-4.2.4/configure --prefix=/usr/local/gcc-4.2.4 --enable-threads=posix --disable-checking --host=i386-redhat-linux --with-system-zlib --enable-languages=c,c++
    七、make;make install
    八、设定环境变量,在/etc/profile里加入如下:
PATH=/usr/local/gcc-4.2.4/bin:$PATH
export PATH
LD_LIBRARY_PATH=/usr/local/gcc-4.2.4/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
    九、注销一下,或source /etc/profile,然后gcc -v看一下版本,如果是gcc-4.2.4就对了。

    装完gcc4后,QT4.5还得得新装一遍,从昨晚9点一直编译到12点钟,一个漫长的等待。虽然已经是凌晨零点了,但还是迫不及待地试一下QT程序,结果有点失望,跟gcc3.2.2的结果一样,背景图片还是填不上去。问题可能比较麻烦了,睡觉去,明天再说了。
    早上到公司后,当然是马上再试两把了,还是那样。那说明背景图片填不上去,可能跟gcc的版本没有关系,但为什么在arcchlinux上就行呢? archlinux的也是gcc4,版本可能有少稍微差别,但应该不是问题,这里面唯一的区别那就是redhat9的qt是x11版本的,而archlinux装的是embedded版的。 背景图片填不出来,应该是X11导致的,或许有BUG,或许X11版本太低。
    接下来,要做的实验就是同时在redhat上面装一个X11版本qt,再装一个embedded版qt,同时跑一下测试程序,看结果。。。   说动手就动手,再在就开始装
    分两实验:
    第一步,用redhat9.0自带的gcc装分别装两个版本的qt
    第二步,在redhat9.0上,用自己装的gcc4.2.4装qt的两个版本。

    第一步的结果很快就出来了,qt-embedded-linux-opensource-src-4.5.0在自带的gcc3.2.2编译出错。原因:gcc版本太低。 既然embedded版的装不上去,也没什么可比性了,马上启动第二步   2009.08.06 15:45
    第二步的结果也有了,结果是用gcc4.2.4也装不上去qt-embedded4.5.   2009.08.07 09:02

这两步实验都失败了。。。

    但在archlinux上能装上qt-embedded4.5,而且图片背景填充也都没问题。 看来,以后是不是考虑改玩archlinux了,redhat9太老了,事太多。。




   



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/85282/showart_2019579.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP