搞了几天Qt,从搭配环境开始就遇到一坨坨的问题啊,很多东西又搜索不到,只能自己尝试了,在博客中记录一下,希望能帮助到有同样问题的人。
1.Qt Linux下运行环境的配置:
我这里配置环境是下载源码库下来自己编译一个SDK,这样有个好处是能看到源码方便学习.
到这里下载东东,我的是Ubuntu 10.04,下载了这两个:
Qt libraries 4.8.4 for Linux/X11 (225 MB) -->库
Qt Creator 2.6.0 for Linux/X11 32-bit (63 MB) -->IDE
库下载下来以后是qt-everywhere-opensource-src-4.8.4.tar.gz,解压一下,到其目录下,执行configure脚本,等执行完了,再执行make,这是一个耗时很长的过程(我的机器上搞了几个小时....),耐心等待完了以后再执行make install,它会在/usr/local/Trolltech目录下安装sdk,安装好了以后Qt的运行环境就算好了。qt-everywhere-opensource-src-4.8.4这个目录最好保留着,以后跟踪源码以及出了问题重新编译都需要它。
2.Qt Creator IDE:
Qt Creator 2.6.0 for Linux/X11 32-bit (63 MB)下载下来以后,到其目录执行qt-creator-linux-x86-opensource-2.6.0.bin,此文件需要加上X可执行权限方可执行,执行完了以后IDE就安装好了,下边需要在IDE中配置Qt开发环境,运行Qt creator,创建新项目,会让你配置Kit,在"Qt version"一栏,点击右边的"manager",选择qmake路径为:/usr/local/Trolltech/Qt-4.8.4/bin/qmake,就好了。下面就可以创建一个Qt Gui application写一个Hello world了。
3.Qt中文显示问题:
如果随意创建一个QPushButton,设置它的text为"中华人民共和国",运行起来会发现是方块框框(在我的机器上是这样,在我朋友的机器上是乱码),这里要显示出正确的文字需要解决两个问题,一个是编码一个是系统字体。
编码:
加上这句话QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));然后把用到字符串的地方通通用QObject::tr()给包起来,我这里就是QObject::tr("中华人民共和国");
修改字体以解决显示出来的文字是方块的问题:
在终端中运行qtconfig,按我图中所说的配置一下就好了:
4.QGLWidget cannot found: no such file or directory:
这个问题是我在编译一个网上有人写的游戏项目时发现的,找不到QGLWidget头文件,在我公司机器上是没问题的,在我家里机器上却出现这个问题,查了半天没找到原因,后来才知道是由于机器缺乏opengl库导致编译sdk的时候没有编译出Qt所需要的针对opengl的一些文件。
解决方案:
$ sudo apt-get install mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev安装opengl库,重新configure,make 和make install 就解决了,妹的又编了三个小时!!