您的位置:首页 > 编程语言 > Qt开发

使用designer-qt3设计界面,生成对应.h和.cpp文件时遇到的问题

2011-11-22 18:16 756 查看
在实验中遇到了若干问题,通过查找资料以及自己的摸索,解决了问题。现把具体遇到的问题现象及分析罗列如下:

1. 最好使用root身份运行designer-qt3,以便正常保存文件。比如,以mrl用户身份使用designer-qt3,开启时,控制台有“QSettings::sync: filenameis null/empty”的提示;在保存文件时,出现点击确认对话框保存,对话框重新弹出要求保存文件的提示。



2. 如果出现“qconfig.h: No such file or directory”的出错提示,如下所示



很可能是qconfig.h的文件无法访问。原因是因为当前用户没有权限访问qconfig.h文件。目前解决方案是:输入“su”,切换到管理员请权限下,重新设置环境变量。

可以编写shell脚本,来配置环境变量,脚本内容如下:

#!/bin/bash

exportBUILD=/usr/local/src/EduKit-IV/Mini2410/simple/12.3-qtopia-x86/build

export DQTDIR=$BUILD/qtopia-x86/dqt

export QTDIR=$BUILD/qtopia-x86/qt2

export QPEDIR=$BUILD/qtopia-x86/qtopia

exportLD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib:$LD_LIBRARY_PATH

export TMAKEDIR=$BUILD/qtopia-x86/tmake

export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++

exportQMAKESPEC=$QPEDIR/mkspecs/qws/linux-x86-g++

exportPATH=$QPEDIR/bin:$QTDIR/bin:$DQTDIR/bin:$TMAKEDIR/bin:$PATH

保存脚本为qtsh。再输入“source qtsh”执行脚本。

3. 在输入“tmake –o Makefile hello_qt.pro”编译生成Arm下的Makefile时,发现出错。提示内容:“tmake error: Templatefile tmake.conf not found”

这是由于tmake没有找到对应于Arm的编译配置文件tmake.conf。这是由于,还未编译生成Arm下的配置文件。故需要在$SIMPLEDIR/12.4-qtopia-arm目录下,执行脚本arm-qt2.2-tsp.sh,以生成对应的tmake.conf配置文件。



4. 在make的时候出现问题,出错提示:“Makefile:17:*** missing separator. Stop.”



主要是因为,在Makefile文件中出现多余的<SPACE>键,删掉<SPACE>,改用<TAB>键就可以了。

5. 在输入“make”时,出现错误提示如下:

main.cpp: In function `int main(int,char**)':

main.cpp:8: error: `Form1' was not declaredin this scope

main.cpp:8: error: expected `;' before"w"

main.cpp:9: error: `w' was not declared inthis scope

main.cpp:8: warning: unused variable'Form1'

main.cpp:9: warning: unused variable 'w'

如下图所示。



查找原因,是由于利用uic生成的.cpp和.h文件中没有定义Form1等参数。这是由于uic生成了空的.h和.cpp文件。继续发现原因,是因为使用没有使用与designer-qt3对应的uic生成.h和.cpp文件。解决方法:使用uic-qt3生成.cpp和.h文件,使用方法同uic相同。

6. 遇到错误提示:

main.o: could not read symbols: File inwrong format

collect2: ld returned 1 exit status

make: *** [heyman] Error 1



原因是某些.o文件为arm的,不是x86的,在链接成可执行文件时,自然会出问题。

解决方法:输入“makeclean”,清除中间文件。

7. 使用qmake生成x86平台的Makefile文件,使用tmake生成arm的Makefile文件。

由于直接通过界面文件(.ui文件)生成.h和.cpp文件,每次修改界面,都需要重新生成编程文件(.h和.cpp文件),并重新编码,工作量很大。因此,尽量保证界面设计一次完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: