解决Qtopia中QFileDialog不支持

来源:互联网 发布:军软件下载站 编辑:程序博客网 时间:2024/06/11 05:53

  移植了Qtopia4.4.3,但是想要自己在这套框架上添加自己的一些应用,遇到了一些问题,经过研究问题终于得到解决,现分享给大家!!!

  可能大家都知道,Qtopia默认编译是没有包含对QFileDialog这个类配置与编译的,所以如果大家在自己的应用程序中如果有用到QFileDialog这个类,那么不好意思,你的应用程序是无法编译通过的。经常出现的错误如下:

'QFileDialog' has not been declared;

  我的开发环境:

  Fedora9+vmware7.0

  交叉编译器:arm-linux-gcc4.4.3(友善之臂提供)

  qt-extended-opensource-src-4.4.3.tar.gz


可能大家也参考了网上的资料,大部分提供的方法就是自己实现一个QFileDialog类,这里就有友善之臂论坛版主提供的详细说明,链接如下:

http://www.arm9home.net/read.php?tid-4001.html,大家可以参考这个方式试试,看看怎么样?


现在我将介绍我的解决方法:

a、如果的你qt-extended已经编译好了,那么找到 qconfig-qpe.h这个文件,

如何寻找,估计对个别网友难度不小,告诉大家一个技巧:

[root@localhost arm]# find -name qconfig-qpe.h    可以找到并例举出qconfig-qpe.h文件。

b、找到qfeatures.txt文件,同样可以用上面的技巧。打开如下:

看到没有,QFileDialog类的编译同时还要依赖下面那几个标注出来的类啊,所以有的网友只是在qconfig-qpe.h将

#ifndef QT_NO_FILEDIALOG
#  define QT_NO_FILEDIALOG
#endif
这段宏语句注释掉后重新编译还是后,还是提示没有声明QFileDialog,所以大家要做的就是将刚才上图中标注的依赖类,在qconfig-qpe.h找到对应的宏定义,并一一注释掉,尽可能找全咯,可能有些是找不到的。保存退出后。

c、在目录下qt-extended的配置目录下执行:

[root@localhost builddir]# make distclean

然后重新configure、qbuild、qbuild iamge等等,好了这样就可以使用QFileDialog类了,我也是参考了一个英文帖子,链接如下:

http://www.qtcentre.org/archive/index.php/t-22637.html,大家可以参考参考,时间仓促,可能有所疏漏,希望大家指正并提问,email:forstudy@yahoo.cn



原创粉丝点击