//大家的资料里关于QT的有三份,两份word和一份txt,三份内容不完全相同,
有些同一点内容又有差别,所以我整理了一下,加了一些注释,改了点小错误,
可以减少几个小时的时间,哈哈~慢慢安装吧~
-by kevin
一、qt的源码编译
1、编译触摸屏软件tslib
解压tslib-1.4.tar.gz
Tar-zxvf tslib-1.4.tar.gz-C/usr/local
cd tslib
apt-get install libtool
apt-get install autoconf
apt-get install g++
在tslib目录下
./autogen.sh
CC=arm-linux-gcc
####echo"ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache //###表示注释掉了,第三句是前两句的结合
####./configure--prefix=/opt/ts/--host=arm-linux --cache-file=arm-linux.cache
./configure--prefix=/opt/ts/--host=arm-linux ac_cv_func_malloc_0_nonnull=yes
打开tests/ts_calibrate.c,修改两个open,加上第三个参数0// at line227229
make
make install
2、安装qt--X11
apt-get install libX11-dev libXext-dev libXtst-dev
apt-get install xorg-dev
解压tar zxvf qt-everywhere-opensource-src-4.6.3.tar.gz-C /usr/local/
mv qt-everywhere-opensource-src-4.6.3 qt-everywhere-opensource-src-4.6.3-x11
./configure-nomake examples-nomake demos
make&&make install
该过程会出现让你选择commercial或者open版本==》输入o
然后询问是否接受license==》输入yes
make&&make install
//三个小时左右,该干嘛干嘛去
3、安装qt--x86
#tar xzvf qt-everywhere-opensource-src-4.6.3.tar.gz-C/usr/local #mv qt-everywhere-opensource-src-4.6.3 qt-everywhere-opensource-src-4.6.3-x86
#cd qt-everywhere-opensource-src-4.6.3-x86
#./configure-prefix/usr/local/Trolltech/Qt-4.6.3-x86-nomake examples-nomake demos-nomake docs-nomake tools -embedded x86-qvfb
#make&&make install
4、安装qt--arm
./configure-prefix/usr/local/Trolltech/Qt-4.6.3-arm-release -shared-fast-xplatform qws/linux-arm-g++-embedded arm -depths16-no-qvfb-no-qt3support-qt-sql-sqlite-qt-zlib-qt-libpng
-qt-freetype-qt-mouse-tslib-no-mouse-pc-no-mouse-linuxtp -nomake examples-nomake demos-nomake docs-nomake tools -I/opt/ts/include-L/opt/ts/lib
有错,使用下面的
./configure\
-prefix/usr/local/Trolltech/Qt-4.6.3-arm\
-release-shared-fast\
-xplatform qws/linux-arm-g++-embedded arm\
-depths16-no-qvfb\
-no-qt3support-qt-sql-sqlite-qt-zlib-qt-libpng-qt-freetype\
-qt-mouse-tslib-no-mouse-pc-no-mouse-linuxtp\
-nomake examples-nomake demos-nomake docs-nomake tools\ -I/opt/ts/include-L/opt/ts/lib
执行完configure命令之后,还需要修改三个文件:
cd qt-embeded-opensource-src-4.6.3-arm
1)该目录下/src/3rdparty/freetype/include/freetype/config/ftconfig.h330行
"orr%0,%0,%2,lsl#16\n\t"/*%0|=%2<<16*/
//原来:"orr%0,%2,lsl#16\n\t"
2)/src/3rdparty/webkit/WebCore/Makefile
14行和15行,分别在-fPIC$(DEFINES)之前加入-D__ARM_ARCH_4T__
(即CFLAGS/CXXFLAGS)
3)/src/script/Makefile
14行和15行-D__ARM_ARCH_4T__(同上)
make&&make install
二、环境搭建(Trolltech)
1、设置环境变量Qt-4.6.3
进入/usr/local/Trolltech/Qt-4.6.3目录
vi setenv.sh或者sudo gedit setenv.sh
在文件中加入
PATH=/usr/local/Trolltech/Qt-4.6.3/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.6.3/lib:$LD_LIBRARY _PATH
保存退出
chmod777setenv.sh
2、设置环境变量Qt-4.6.3-x86
进入/usr/local/Trolltech/Qt-4.6.3-x86目录
vi setenv.sh或者sudo gedit setenv.sh
在文件中加入
QTEDIR=/usr/local/Trolltech/Qt-4.6.3-x86
PATH=/usr/local/Trolltech/Qt-4.6.3-x86/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.6.3-x86/lib:$LD_LIB RARY_PATH
保存退出
chmod777setenv.sh
3、设置环境变量Qt-4.6.3-arm
进入/usr/local/Trolltech/Qt-4.6.3-arm目录
vi setenv.sh或者sudo gedit setenv.sh
在文件中加入
QTEDIR=/usr/local/Trolltech/Qt-4.6.3-arm
PATH=/usr/local/Trolltech/Qt-4.6.3-arm/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.6.3-arm/lib:$LD_LIB RARY_PATH
保存退出
chmod777setenv.sh
三、编译qvfb
cd qt-everywhere-opensource-4.6.3-x11/tools/qvfb
#####
/usr/local/qt-everywhere-opensource-src-4.6.3-x11/tools/qvfb make
--会在qt-everywhere-opensource-4.6.3-x11/bin下生成qvfb,
我们将它copy至/usr/local/Trolltech/Qt-4.6.3-x86/bin下
cp qvfb/usr/local/Trolltech/Qt-4.6.3-x86/bin
运行测试()
运行x86下setenv.sh脚本文件。source setenv.sh(word 里大写S不对)
命令行输入qvfb&(&后台运行)
对Qtcreator工程文件qmake文件名.pro然后make生成可执行文件
./可执行文件-qws
(示例文件可以去qt-everywhere-opensource-4.6.3-x86/examples或者demos里面找)
四、安装QTCreator
chmod777qt-sdk-linux-x86-opensource_2010.02.bin
cp qt-sdk-linux-x86-opensource_2010.02.bin/opt
./qt-sdk-linux-x86-opensource_2010.02.bin默认安装即可
六、在ubuntu中安装NFS服务,在开发内核和文件系统时很方便,可以直接采用NFS启动内核和文件系统。安装如下:
1、安装
#apt-get install nfs-kernel-server
2、将NFS端口是否打开
#netstat-tl
若NFS端口处于LISTEN状态,则打开
3、配置NFS服务器
#vim/etc/exports
在最后一行加入:/work*(rw,sync,no_root_squash)
其中:/work为共享目录
*为任意IP地址都可以访问
no_root_squash表示任意用户都可以访问
4、重启NFS服务
#/etc/init.d/nfs-kernel-server restart
5、查看NFS服务器当前的工作状态
#/etc/init.d/nfs-kernel-server status
若显示running则工作正常
安装结束
五、ARM板上配置环境:(板子和电脑之间)
编辑目标环境下(/utulinux2.6.24/s3c2440_recover/etc
)的/etc/profile,在文件后面添加如下内容:
(和ppt上的有少许区别,主要是路径上)
export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH
export QTDIR=/usr/local/Trolltech/Qt-4.6.3-arm
export QPEDIR=$QTDIR
export T_ROOT=/opt/ts
export PATH=$T_ROOT/bin:$PATH
export
LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_KEYBOARD=USB:/dev/input/event1
export QWS_MOUSE_PROTO=Tslib:/dev/event0
export QWS_DISPLAY=LinuxFb:mmWidth45:mmHeight60:0 export QWS_SIZE=320x240
六.在目标环境中建立与编译QT-arm一样的路径:(目标路径/utulinux2.6.24/s3c2440_recover)
mkdir/usr/local/Trolltech/Qt-4.6.3-arm
cd/usr/local/Trolltech/Qt-4.6.3-arm
mkdir lib/
mkdir lib/fonts/
把以下的库文件从编译主机中的lib复制目录中的四个库文件复制到目标板的/usr/local/Qt-4.6.3-arm/lib
libQtCore.so.4.6.3
libQtGui.so.4.6.3
libQtNetwork.so.4.6.3
libQtSql.so.4.6.3
为每个库文件创建3个连接:*.so,*.so.4,*.so.4.6
ln–s libQtCore.so.4.6.3libQtCore.so
ln–s libQtCore.so.4.6.3libQtCore.so.4
ln–s libQtCore.so.4.6.3libQtCore.so.4.6
(重复其余三个)
常用字库文件从/usr/local/Trolltech/Qt-4.6.3-arm/lib/fonts/复制
到目标板的
/utulinux2.6.24/s3c2440_recover/usr/local/Trolltech/Qt-4.6.3-ar m/lib/fonts
cp-rf/usr/local/Trolltech/Qt-4.6.3-arm/lib/fonts/\ /utulinux2.6.24/s3c2440_recover/usr/local/Trolltech/Qt-4.6.3-ar m/lib
七、
1:将/opt下交叉编译好的tslib文件cp到开发板中对应的同样目录下,其中的include目录和lib下的pkgconfig目录可以不拷贝。
进入到/opt复制ts目录
cp-rf ts/utulinux2.6.24/s3c2440_recover/opt/
2:检查/utulinux2.6.24/s3c2440_recover/opt/
ts/etc/ts.conf内容加入module_raw input:
module_raw input(必须顶格,不然bug)
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
八.cd/usr/local/Trolltech/Qt-4.6.3-arm/mkspecs/default
//这个问题找了好久,结果发现是这里目录错了,应该是cd
/usr/local/Trolltech/Qt-4.6.3-arm/mkspecs/qws/linux-arm-g++
不然后面qmake时会出错
修改qmake配置文件:
vi qmake.conf打开文件中在QMAKE_LINK_SHLIB此行下面加入一行:
QMAKE_LFLAGS+=-Wl-lts加入后如下:
#modifications to g++.conf
QMAKE_CC=arm-linux-gcc
QMAKE_CXX=arm-linux-g++
QMAKE_LINK=arm-linux-g++
QMAKE_LINK_SHLIB=arm-linux-g++
QMAKE_LFLAGS+=-Wl-lts
#modifications to linux.conf
QMAKE_AR=arm-linux-ar cqs
QMAKE_OBJCOPY=arm-linux-objcopy
QMAKE_STRIP=arm-linux-strip
load(qt_config)
九.将例子hellowrld拷贝到/utulinux2.6.24/s3c2440_recover/usr 下测试
在串口终端进入文件夹中./helloworld-qws
//这里讲得不清楚,是这样的,因为要在arm板上运行,所以要用Qt-4.6.3-arm中对应的qmake编译
先要执行该文件中的setenv.sh
source/usr/local/Trolltech/Qt-4.6.3-arm/setenv.sh
执行后环境变量就在本终端中有效,不要切换终端qmake
然后找到要编译的项目qmake name.pro
make
生成和项目名一样的可执行文件,该文件可以在arm板上执行CRT中输入./name-qws即可
十.错误解决方法:
提示:./helloworld:error while loading shared libraries: libts-0.0.so.0:cannot open
shared object file:No such file or directory
Ts触摸屏驱动有问题,解决方法看路径是否对。
//这里说的路径主要是说/utulinux2.6.24/s3c2440_recover/etc/profile中T_ROOT=/opt/ts 设置是否正确
错误:
./helloworld:error while loading shared libraries:libstdc++.so.6: cannot open
shared object file:No such file or directory
对应文件拷贝链接:
进入目标系统lib目录下://这种类似的报错可以到ubuntu中把Qt-4.6.3-arm/lib下的文件拷贝过来,软连接的话自己建
ln-s libstdc++.so.60.0.3libstdc++.so.6
错误:
Cannot create Qt for Embedded Linux data directory: /tmp/qtembedded-0
Aborted
在目标板根目录下创建文件夹:
mkdir tmp
十一.重启nfs服务://这里不一定需要
/etc/init.d/nfs-kernel-server restart
重启板子reboot
校准:(遇到错误提示如下)
Could not read calibration:"/etc/pointercal"
超级终端命令行输入:ts_calibrate运行
在触摸屏上点击鼠标跟踪。
重新再运行helloworld
十二、想要板子开机运行程序要挂载电脑端的utulinux目录首先启动utubootloader运行:setenv bootargs
saveenv启动后运行:
mount-t nfs192.168.1.200:/utulinux2.6.24/s3c2440_recover /media/nfs
(挂载不了重启板子reboot)
Linux下Qt 4.8.0 环境配置 Step1:在诺基亚官QT网下载文件包 https://www.doczj.com/doc/ce4439570.html,/qt/source/qt-everywhere-opensource-src-4.8.0.tar.gz Step2:打开取得root权限,将安装包解压到/usr/local 下 [CentOS@localhost ~]$ su root [root@localhost CentOS]# tar zxf /tmp/qt-everywhere-opensource-src-4.8.0.tar.gz -C /usr/local (不加-C的话在解压时会出现Not found in archive 的错误) Step3:安装Qt的一些依赖软件包 A.gcc C++ 编译器 B.Xlib库,在软件添加中找到libX11-dev,libXext-dev,libXtst-dev这三个包并安装 C.Make包,可以在终端中用yum命令安装 Step4:用root权限执行Qt中的配置文件configure [CentOS@localhost ~]$ cd $QTDIR (QTDIR是在.bash_profile定义好的环境变量) [CentOS@localhost qt-everywhere-opensource-src-4.8.0]$ su root [root@localhost qt-everywhere-opensource-src-4.8.0]# ./configure 出现以下提示 Which edition of Qt do you want to use ? Type 'c' if you want to use the Commercial Edition. Type 'o' if you want to use the Open Source Edition. 输入”o”开始安装编译环境 Step5:配置结束后中遇到如下提示 [root@localhost qt-everywhere-opensource-src-4.8.0]# gmake 开始Qt安装编译,大概需要2个小时左右
实验一、Qt实验环境的搭建和使用 一、实验目的 1、熟悉Qt的安装步骤 2、熟悉Qt程序的基本结构 二、实验内容 1、搭建虚拟机+Linux实验环境 2、安装Qt4.8 步骤: (1)解压代码 tar zxvf qt-everywhere-opensource-src-4.8.2.tar.gz (2)执行./config生成makefile ./config 下面出现对话框选择open source edition.这是自由版。输入yes接受协议。 (3)编译QT 执行make命令,需要2个小时。 (4)安装QT 运行make install命令。需要几分钟时间,默认安装到/usr/local/Trolltech/Qt-4.8.2. 运行/usr/local/Trolltech/Qt-4.5.3/bin/designer ,若能启动QT,说明QT已经安装好了。 (5)设置环境变量 更改用户环境变量 gedit /home/envi/.bashrc 添加: export QTDIR=/usr/local/Trolltech/Qt-4.8.2 export PA TH=$QTDIR/bin:$PATH export MANPATH=$QTDIR/man:$MANPATH export LD_LIBRARY_PA TH=$QTDIR/lib:$LD_LIBRARY_PA TH 更改包括root用户的环境变量 sudo gedit /etc/profile 添加: export QTDIR=/usr/local/Trolltech/Qt-4.8.2 export PA TH=$QTDIR/bin:$PATH export MANPATH=$QTDIR/man:$MANPATH export LD_LIBRARY_PA TH=$QTDIR/lib:$LD_LIBRARY_PA TH (6)测试环境变量 重启测试环境变量: qmake -v 显示版本信息:
1.以下关于QT的描述正确的是: a.是一个不跨平台的C++图形用户界面 b.由挪威TrollTech公司出品 c.只支持Unix、Linux d.QT API和开发工具对所支持的平台是不一致的2.以下关于QT的描述不正确的是: a.QT支持2D图形渲染 b.QT支持3D图形渲染 c.QT支持OpenGL d.QT不支持XML 3.下关于不正确的是: a.是面向嵌入式系统的Qt版本 b.是Qt的嵌入式窗口 c.基于Windows平台的开发工具 d.是完整的自包含C++ GUI的开发工具 4.内部对字符集的处理采用以下哪个标准: a.UNICODE b.ASCII c.GB2312 d.ISO 8859-1 5.以下关于Qt描述不正确的是 a.是基于面向对象的C++语言 b.提供了signal和slot的对象通信机制 c.有可查询和可设计属性 d.没有字符国际化 6.以下描述正确的是: a.标准的C++对象模型可有效的支持运行时参数 b.标准的C++对象模型的静态特性十分灵活 c.图形用户界面编程无需运行得高效 d.图形用户界面编程无需运行得高灵活性 7.以下不是QT增加的特性: a.有效的对象通信signal和slot b.可查询和可设计的对象 c.事件及事件过滤器 d.不使用指针 8.以下描述正确的是: a.元对象系统可以对信号使用模板 b.元对象系统可以对槽使用模板 c.Qt可在多个平台的应用程序中完全应用模板 d.Qt不能在多个平台的应用程序中完全应用模板9.以下关于moc叙述正确的是:
a.moc即Mult Object Compiler b.可产生能被任何标准C++编译访问的附加C++代码 c.moc必须手动调用 d.类声明中有无Q_OBJECT无所谓 10.以下关于信号和槽的描述正确的是: a.用于SOCKET网络通信 b.用于UDP网络通信 c.用于对象间通信 d.用于串口通信 11.以下关于信号/槽的叙述不正确的是: a.信号与槽通过connected函数任意相连 b.信号/槽机制在QObject类中实现 c.从QWidget类继承的所有类可以包含信号和槽 d.当对象状态变化时信号被发送,对象不关心是否有其他对象接收到该信 号 12.以下类声明中有几处错误? class M : public Qobject { public : M ( ) ; int value ( ) const { return va ; } public slot : void setValue ( int ) ; signals : void valueChanged ( int ) ; private: int va ; }; a. 5 b. 4 c. 3 d. 2 13.设有如下声明 void M : : setValue ( int v ) { if ( v != va ) { va = v ; emit valueChanged ( v ) ; } }
QT学习笔记 1.QT不支持中文路径(文件夹和名称)! 2.QT的编译结果窗口不能正常显示汉字(显示的汉字为乱码) 3.如果程序中使用了PNP以外格式的图片如gif文件,在发布程序时要将 plugins目录下的imageformats文件夹下的对应的Qgif4.dll同时发布。4.在将某一项目的所有文件拷贝至别的文件夹后,系统编译生成的文件夹不会 自动改变,需要再手工改: 5.切换对话框语言: 6.QT单编译某一文件,在文件名上击右键: 7.QT在初始打开项目、点击编译后等,暂时没反应,是正常的,需要等一会: 如下图,读入新的项目,过一会,左下角的绿色图标才会显现(开始是灰色)8.Shadow build选项作用是新建文件夹存放编译结果文件,否则就放在源文件 夹下: 9.【依赖关系】用来设置此项目还依赖于其他的项目(如依赖于另外一个项目 生成的lib库或dll),这样,编译时,会统一自动维持最新编译版本 10.QT的联机帮助的index方式,可以输入关键字,检索条目。但必须打开sidebar 才能显示输入检索关键字的界面: 11.QT编译执行时,显示下列信息: 一种原因是找不到某一DLL。究竟缺少哪一个,可以在开发环境外,直接执行exe文件,会显示: 12.QT Creator执行ReBuild命令,或者是编译时,偶尔会出现并没有重新编译 的现象,例如:将项目中某些文件删除掉(在。Pro中删除,然后保存。),再执行ReBuild,然后运行,发现还是删除前的执行程序,并没有ReBuild。 可能是太过智能,认为没啥变化。 后来发现,在编译设置中,disable了clean steps!恢复clean steps后,开发环境将先做清除,这样就可以正确判断变化了: 13.QT有这样的现象:编译执行run的结果如下: 而执行debug时,弹出对话框,与run不一样,显示了一个错误对话框:14.为了运行时不拷贝需要的dll到当前文件夹(省事),可以设置运行环境变量 PATH。QT编译运行的环境设置见下图,其中PATH会不会自动与Windows系统的设置同步不知道: Windows系统的设置
第一次编译已经成功-webkit可用,SSL可用-开荒之旅,历尽艰辛. 第二次编译已经成功-webkit可用,SSL可用-旧事重提,高歌猛进. 建议参考第二次编译说明. 本机使用Qt官方的安装器,已经安装了msvc2010,msvc2013,msvc2013_64和Qt5.5.1源码. 本文在WIN7 x64下用MSVC2010x64动态编译Qt5.5.1源码.没有编译dbus,sql驱动只编译了sqllite.因为dbus是linux下的,驱动是第三方库,没有安装,就无法编译. 源码根目录README有很多有用信息,Qt官方网页也有很多有用信息. ●前置工具: 1.ActivePerl5.8 or later 2.Python2.7 or later 3.Ruby没找到要求,我用的2.2.4 4.DirectX SDK不然编译失败,提示和ANGLE有关,大意是要DX SDK才能把把opengl映射到A NGLE,就算使用-opengl desktop也编译失败,不清楚为什么.DirectX SDK会自己设置一个环境变量DXSDK_DIR.Qt源码自带angle源码,不用去下载,也不用单独编译. 5.C++ compiler supporting the C++98 standard 前四个工具安装后,会自动配置环境变量,也必须有,否则就得在cmd中再配置.ActivePerl在p ath中必须位于msysgit的perl之前(如果有) 关于Windows SDK 7.1和Visual Studio 2010和Visual Studio 2010 SP1,官方是这么说的: if you use this SDK with Visual Studio 2010, installing the SDK requires installing the foll owing packages in this order. 注意有if,如果没安装SDK 7.1,不用鸟这部分内容. ●第三方库: 1.ICU-采用动态编译,X64 Debug和Release都编译了,并且分开存贮. 2.SSL-采用动态编译,X64 Debug和Release都编译了,并且分开存贮. 第三方库的编译,一定要按要求走到最后一步,编译出来最终是什么目录结构(即安装后),就是什么目录结构,别改. 第三方库的编译,使用Debug版本和Release版本都可以,关键是lib和dll要对应.比如xd.lib 要和xd.dll相对应;x.lib要和x.dll.当然有的库编译出来的D/R名字一样,对于debug版本,它没有在名字后面加后缀d. 第三方库的编译,没有必要编译两个配置,一个Release配置就够了,Qt官方就是这么干的,并且官方用的动态编译. ●注意事项: [注意]在第一次编译中,编译了ICU和SSL的X64的D和R两个版本(动态编译,所有测试用例
QT编译与配置(静态库与静态运行时库) Qt是一个跨平台的应用程序程序框架,可以运行于Windows、Linux、Mac、S60等平台,自从其开源的授权协议由GPL变为LGPL后就变得流行起来。LGPL协议允许使用者开发私有程序而不开源,前提是Qt库必须以动态链接的方式加入程序。 打开Qt的下载页面,可以看到SDK和Library的下载链接。 SDK提供了完整的开发环境,而Library仅仅包含代码和编译出的库。这里的库都是动态链接的Release和Debug版库(相应的Configure参数为-debug-and-release -shared)。而如果需要静态库,就要自己编译了,如果不想自己编译,qtcn论坛上有不少已编译的静态库可以直接下载,地址 https://www.doczj.com/doc/ce4439570.html,/bbs/read.php?tid=11800。 如果要自行编译,那么备好一份代码就够了,ftp://https://www.doczj.com/doc/ce4439570.html,/qt/source/下有Qt的各个版本的代码下载 下面介绍一下Windows下的静态库编译过程 编译代码有基本的两步,configure和make,不过在这之前还要设置好编译环境。如果是VS,只要执行“Visual Studio 200X命令提示”就行了,如果是Mingw,需要把mingw下的bin目录加入到环境变量中。 这里推荐的configure命令是 configure [-release|-debug|-debug-and-release] -static -no-qt3support -no-webkit -platform [win32-g++|win32-msvc2008|...]
Qt开发环境下载和安装 (2015.01.18 by Winland) Qt是跨平台的图形开发库,目前由Digia全资子公司Qt Company 独立运营,官方网址:http://www.qt.io/ 也可以访问Qt项目域名:https://www.doczj.com/doc/ce4439570.html,/ Qt本身支持众多操作系统。从通用操作系统Linux、Windows,到手机系统Android、iOS、WinPhone,嵌入式系统支持QNX、VxWorks,应用非常广泛。 基于Qt的软件非常多,其中最知名的要数Linux桌面系统KDE(涵盖无数以K打头的应用软件)。国内WPS for Linux版本、360 for Linux也是使用Qt库开发的界面。只要有C++基础,Qt是很容易学的,而且开发跨平台的程序也容易。目前主流使用的Qt库有Qt4和Qt5两个大版本,下面介绍其在Windows系统里的下载和安装。 一、Qt4开发环境下载安装 首先进入下载页面http://www.qt.io/download/ 有四个使用方式,开源社区版、移动版、专业版、企业版,后面几个要钱的,这里选择第一个GPL/LGPL的下载就行了。 进入开源版页面: http://www.qt.io/download-open-source/
上面大按钮Download Now是下载在线安装版,其实只是一个下载工具,并不是真正的Qt 开发库。可以自己下载离线安装包,注意页面的“View All Downloads”,点开之后就能看 到离线包。目前看到的全是Qt5.4.0版本的,那Qt4的在哪呢? 把上面页面拖到最下面: 旧版本包就是最后一个链接:http://download.qt.io/archive/
QtE开发基础
?嵌入式GUI特点及种类 ?安装与建立QtE桌面运行环境?QtE Hello程序
?嵌入式GUI特点及种类 ?嵌入式系统对GUI的基本要求包括轻型、占用资源少、高性能、高可 靠性及可配置。 ?尽管实时嵌入式系统对GUI的需求越来越明显,但目前GUI的实现方法 各有不同,主要有以下几点: ?某些大型厂商有能力自己开发满足自身需要的GUI系统。 ?某些厂商没有将GUI作为一个软件层从应用程序中剥离,GUI的支 持逻辑由应用程序自己来负责。 ?采用某些比较成熟的GUI系统,比如MiniGUI,MicroWindows 或其他GUI系统。
?MiniGUI ?MiniGUI由原清华大学教师魏永明先生开发,是一种面向嵌入式系 统或实时系统的图形用户界面支持系统。它主要运行于Linux控制台,实际可以运行在任何一种具有POSIX线程支持的POSIX兼容系 统上。
?MicroWindows ?MicroWindows是一个著名的开放源码的嵌入式GUI软件。它提供了 现代图形窗口系统的一些特性。MicroWindows API接口支持类 Win32API,接口试图和Win32完全兼容,而且还实现了一些Win32用户模块功能。
?Qt/Embedded ?Qt/Embedded(简称QtE)是一个专门为嵌入式系统设计图形用户界 面的工具包。Qt是挪威Trolltech软件公司的产品,它为各种系统提供图形用户界面的工具包,QtE就是Qt的嵌入式版本。 ?使用QtE,开发者可以: ?用QtE开发的应用程序要移植到不同平台时,只需要重新编译代 码,而不需要对代码进行修改。 ?可以随意设置程序界面的外观。 ?可以方便地为程序连接数据库。 ?可以使程序本地化。 ?可以将程序与Java集成。
Windows下: 节介绍Qt 5.9.0 在 Windows 平台下的安装,请提前下载好 Qt 5.9.0。目前较高版本的 Qt 仅支持 Win7 及其以后的操作系统,不支持 Win XP;使用Win XP 的读者请安装 Qt 5.5.1 之前的版本。 Qt 占用的存储空间很大,安装之前建议先准备好 8GB 以上的磁盘空间。 对于目前 Qt 最新版开发环境,如果不安装源代码包,实际占用大约 5.5GB; 如果选择安装源码包,大约占用 7.5GB。 双击下载得到的qt-opensource-windows-x86-5.9.0.exe 即可开始安装。Qt 的安装过程和普通的 Windows 软件一样,按照向导进行操作即可。 关于 Qt 的安装需要说明以下几点。 1) 注册和登录 Qt 在安装过程中会提示用户进行注册和登录,不用理会,跳过(Skip)即可,实际开发时不需要登录。 图1:Qt 安装过程中提示用户注册
2) 安装路径和关联文件 图2:指定 Qt 安装路径 Qt 允许用户自定义安装路径,但是请注意,安装路径不能带空格、中文字符或者其它任何特殊字符。 另外,该界面还会询问是否关联特定的文件类型。如果关联(默认是关联的),特定后缀的文件(包括 .cpp 文件)默认使用 Qt 打开。我喜欢使用纯文本编辑器(例如 Sublime Text)来打开C++ 源文件,所以我取消了该选项,读者根据自己的实际情况定夺。 3) 选择安装组件 Qt 安装过程中最关键的一步是组件的选择,请看下图:
图3:Qt 组件 Qt 的安装组件分为两部分:一部分是“Qt 5.9”分类下的,该分类包含的是真正的 Qt 开发库组件;另一部分是“Tools”分类下的,该分类包含的是集成开发环境和编译工具。
Qt复习提纲 Qt基础 1、以下关于QT的描述正确的是____B_____ A是一个不跨平台的C++图形用户界面 B由挪威TrollTech公司出品 C只支持Unix、Linux D QT API和开发工具对所支持的平台是不一致的 2、以下关于Qt描述不正确的是_____D__ A是基于面向对象的C++语言 B提供了signal和slot的对象通信机制 C有可查询和可设计属性 D没有字符国际化 3、以下不是QT增加的特性_____D___ A有效的对象通信signal和slot B可查询和可设计的对象 C事件及事件过滤器 D不使用指针 4、以下关于信号和槽的描述正确的是__C_____ A用于SOCKET网络通信 B用于UDP网络通信 C用于对象间通信 D用于串口通信 5、以下关于信号/槽的叙述不正确的是__B?______ A信号与槽通过connected函数任意相连 B信号/槽机制在QObject类中实现 C从QWidget类继承的所有类可以包含信号和槽 D当对象状态变化时信号被发送,对象不关心是否有其他对象接收到该信号 6、关于布局功能的叙述,以下正确的是____D____ A在布局空间中布置子窗口部件 B设置子窗口部件间的空隙 C管理在布局空间中布置子窗口部件 D以上都对 7、布局管理器包括____D____ A QHBox B QVBox C QGrid D 以上全有 8、以下叙述正确的是__D_______ A QHBox允许子窗口部件按水平、垂直和网格排列 B QVBox允许子窗口部件按水平、垂直和网格排列 C QGrid允许子窗口部件按水平、垂直和网格排列 D 以上全不对 9、创建一个窗体对象后,要想显示该窗体,需要调用对象的___show_______方法,要想隐藏该窗体需要调用对象的____hide______方法。
windows下Qt环境变量的设置 在Qt中编译程序完成后,想到文件夹里运行一下生成的exe文件。 这时“BANG”,系统报错:“没有找到mingwm10.dll,因此这个程序未能启动。重新安装应用程序可能会修复此问题。”或“没有找到QtCored4.dll,因此这个程序未能启动。重新安装应用程序可能会修复此问题。” 那么就是因为还没有给系统配置Qt的环境变量。 到“我的电脑->属性->高级->环境变量->系统变量”中编辑Path,补上Qt的bin 路径 “;X:/Qt/2010.02.1/bin;X:/Qt/2010.02.1/qt/bin;X:/Qt/2010.02.1/mingw/bin”即可,其中“X”对应安装Qt的硬盘盘符,改之。 网上有太多关于Windows下Qt配置的文章,各有各的说法,按照他们的去做也都不行。经过一番摸索之后,终于算是把Windows下Qt的开发环境给配置好了。首先,说明的是Qt Open Source已经不支持Visual Studio了,因为Qt公司把这个功能当作Qt Commerical里面的一个功能了。所以,不要想在VC6.0或VS2005下用Qt了,当然,至于是不是真的能用我自己也没有去尝试。我这里,只是翻译了Qt公司网站上的一句话罢了,呵呵,废话不多说了。 Qt for Windows有两种格式的文件:一种是exe格式的,一个是src格式的。当然,这里我推荐大家下载exe格式的文件,因为不用那么繁琐的配置和编译,只要点OK就行了。 一、exe格式的Qt for Windows的安装与配置过程 1、安装MinGW,这个是必须的,到哪里去下载,这个我就不多说了。我用的是MinGw的3.4.2版本的。也是exe格式的MinGW,只要一路点OK就行了。当然,最好装在C:\MinGW下吧,因为好找啊。呵呵 2、安装exe格式的Qt for Windows,当在安装的过程中会有提示MinGW的安装路径,这时默认的就是C:\MinGW所以,只要一路OK就行了。Qt for windows 的默认安装路径是:C:\Qt\4.4.3\,当然这里我的Qt版本是4.4.3的。 3、将Qt for Windows的bin目录添加到环境变量里面,添加方法:我的电脑-》属性-》高级-》环境变量,找到名为PATH的环境变量,然后点编辑,在后面加上C:\Qt\4.4.3\就行了,当然这个路径要和原来的路径之间用分号;分开的。
(默认VS2008已经安装) 方法一(推荐): 步骤如下: 1、下载安装:qt-win-opensource-4.7.3-vs2008.exe 下载地址:https://www.doczj.com/doc/ce4439570.html,/qt/source/qt-win-opensource-4.7.3-vs2008.exe 2、下载安装:qt-vs-addin-1.1.9.exe 下载地址:https://www.doczj.com/doc/ce4439570.html,/vsaddin/qt-vs-addin-1.1.9.exe 安装很容易,安装完成。 方法二: 1、下载源代码:qt-everywhere-opensource-src-4.7.3.zip 下载地址:https://www.doczj.com/doc/ce4439570.html,/qt/source/qt-everywhere-opensource-src-4.7.3.zip 2、将qt-everywhere-opensource-src-4.7.3.zip解压到某个目录下; 3、配置环境变量,在用户变量中添加QTDIR,值为qt-everywhere-opensource-src-4.7.3.zip 所在目录(例如I:\qt-everywhere-opensource-src-4.7.3);另外,在“系统变量”中的Path变量中添加I:\qt-everywhere-opensource-src-4.7.3\bin,用“;”隔开。如把Path值改成I:\qt-everywhere-opensource-src-4.7.3\bin;%SystemRoot%\system32;%SystemRoot%; 4、使用Visual Studio 2008Command Prompt,进入Microsoft Visual Studio9.0\Common7\Tools\目录下,执行vsvars32.bat,执行完,进入L:\qt-win-opensource- src- 4.5.1。 5、输入指令: configure -platformwin32-msvc2008 -debug-and-release。等一阵子,大概十几分钟,configure就会完成。这一步一定要注意,我前几次编译没通过都是因为configure参数出了问题。网上绝大多数帖子都说加上个static参数。我感觉这个静态编译参数没有必要,而且编译后体积太大。仅仅一个hello world控制台应用程序都快上M了。一个空的Qt GUI应用程序都好几M,虽然可以只用一个可执行文件就可以拿到别的机子上跑,可是如果有几个可执行文件,就很不划算了,每个都好几M,加起来会很臃肿,Qt官方文档中也不提倡这么做。还有,加上-static就无法编译通过。如果第一个理由不足以说服你放弃static,那第二个总可以了吧,呵呵。有两次,我加了static参数,头一次编译到webKit的时候报错,无法继续编译了。第二次,我用-no-webkit不编译webkit,可是到了Opengl又出问题了。提示说什么变量名冲突,结果又一次没编译通过。后来不用static就编译成功了。 6、输入nmake。等上4-6个小时,就完成编译了。占用10G硬盘空间。 7、这一步很重要,关系到是否能用qt-vs-addin。 把I:\qt-everywhere-opensource-src-4.7.3下的.qmake.cache和configure.cache这两个文件手动备份到另一个地方。然后输入指令: nmake confclean; 8、几分钟后,清理完成,那个文件夹会从10G锐减到700M,这个时候再把刚备份的.qmake.cache和configure.cache拷回原处。这时候最好把编译后的一堆东西打个包备个份,免得下次又要编译几个小时...打包之后只有207M 9、安装qt-vs-addin-1.1.9.exe (https://www.doczj.com/doc/ce4439570.html,/vsaddin/qt-vs-addin-1.1.9.exe)装完之后,打开VS2008,菜单栏会多出一个Qt选项,选择Qt选项下的Qt Options,在Qt Versions中添加路径,点击Add,选择路径https://www.doczj.com/doc/ce4439570.html,/vsaddin/qt-vs-addin-1.1.9.exe,OK。(如果第7步中没有备份并还原.qmake.cache和configure.cache这两个文件,这里是无法添加的) 10、大功告成,辛辛苦苦编译了半天终于可以爽一把了。呵呵
Qt-4.6新增了Animation Framework(动画框架),让我们能够方便的写一些生动的程序。不必像以前的版本一样,所有的控件都枯燥的呆在伟大光荣的QLayout里,也许它们可以唱个歌,跳个舞。 前面写过一篇文章Qt动画效果的幕后英雄:QTimeLine,介绍了怎么利用QTimeLine写一动画程序。今天又再重申前文里的一句话,所谓动画就是在一个时间段内的不同时间点有不同的状态,只要定义好这样状态,实现动画就是水到渠成的事情。当然做这件事情,最好用的就是状态机,没错Qt-4.6.0提供了QStateMachine类,不过今天我要讲的三字决要简单一些。 第一决:QPropertyAnimation QPropertyAnimation用于和QObject中的属性properties进行通信,比如QWidget的大小,坐标等。来看代码 QPropertyAnimation *animation = new QPropertyAnimation(myWidget, "geometry"); animation->setDuration(10000); animation->setStartValue(QRect(0, 0, 100, 30)); animation->setEndValue(QRect(250, 250, 100, 30)); animation->start(); 第一行创建的QPropertyAnimation对象关联了myWidget这个窗体的几何属性。后面的几句分别设置了这个动画的时长,起始坐标和结束坐标。剩下的事情就交改QProperAnimation 去做就行了。然后调用start()启动它。没错,五行代码就完成了一个完成了一个自动从一个坐标点移动到另一个坐标点的窗体。下面我给出一个可以运行的代码,是一只小鸟从下角移到中间的一个小动画,当然你得自己准备这个同名的图片:) #include
Qt for WinCE 环境搭建心得 李振宇2011-10-17 由于c#版终端软件在WinCE终端上运行不稳定,因此考虑用C++(Qt)重新开发,以前用Qt的SDK安装很方便,可是Qt Wince环境必须要编译Qt源代码,为了搭建环境经历了很多周折,历尽艰辛,花了3天时间,终于搞定了,现把主要步骤和注意事项记下,以留备用。 原来的开发环境设计msvc2005 + qt4.7.4 + qt-vs-addin1.1.9 (qt的此两项为当前最新版本)可是由于qt4.7.4在编译(for wince)时出现错误,此为qt4.7.4的一个Bug(见资料1),因此改为qt4.7.3。msvc2005在安装win32版时,由于只有msvc2008编译版,重新编译麻烦,因此改为msvc2008,否则Debug版编译有问题(见资料2)。还有qt-vs-addin1.1.9在和msvc2008,wince6.0搭配有问题,加不了qt库(见资料3),因此改用qt-vs-addin1.1.8。开发板方面用的是ARM9的SmartArm3250(wince 6.0)。 最终开发环境为msvc2008 + qt4.7.3 + qt-vs-addin1.1.9 资料1 : qt4.7.4 for wince bug 现象:编译qt库时出现错误error LNK2019: unresolved external symbol gmtime referenced in function png_convert_from_time_t 参考资料:https://https://www.doczj.com/doc/ce4439570.html,/browse/QTBUG-21331 Description:When building the Windows CE version of Qt4.7.4 (using e.g., configure -platform win32-msvc2008 -xplatform wincewm60professional-msvc2008, linking (nmake) fails with the following output ... Creating library ..\..\lib\QtGuid4.lib and object ..\..\lib\QtGuid4.exp pngwrite.obj : error LNK2019: unresolved external symbol gmtime referenced in function png_convert_from_time_t ..\..\lib\QtGuid4.dll : fatal error LNK1120: 1 unresolved externals Function gmtime is not available under Windows CE / Windows Mobile, so that would explain the linker error. I marked the Component as Image formats, as it seems to be related to pngwrite / libpng. Answer:But QT 4.7.4 for WinCE have problems with maximized forms ( form.showMaximized() ) I have to get back to 4.7.3 version. 资料2 : msvc2005 Debug版不能用qt-win-opensource-4.7.3-vs2008.exe 参考资料:https://www.doczj.com/doc/ce4439570.html,/yibobin/blog/item/7fe8b9f01cbd76d47831aa28.html 结论1:如果你想把Qt4.6.2安装在VS2005中,又不想花时间编译,请下载和安装qt-win-opensource-4.6.2-vs2008,并单独编译“QT安装路径\src\winmain\” 结论2:在安装qt-win-opensource-4.6.2-vs2008(msvc9/vs2008已编译版)之前千万不要安装qt-sdk-win-opensource-2010.02.1(miniGW已编译版),如果不幸安装了,请先卸掉它,切记!
搭建集成开发环境: 【实验目的】 正确安装Qt 开发环境 【实验步骤】 官方网站下载Qt Creator 集成环境 https://www.doczj.com/doc/ce4439570.html,/downloads-cn 地址为Qt 中国镜像 安装Qt 集成开发环境需要安装一下的包: Qt Creator 是Qt 集成开发环境框架 MinGW Window 上的编译器 Qt 是Qt 主程序 Symbina Arm Device Debugger 作为调试器来使用运行安装程序第一步: 点击【next】
同意协议点击【next】 点击【next】
默认安装大小为1.4g 所以找一个足够大的磁盘,点击【next】 安装到D 盘,点击【next】。
点击【next】 开始进行安装,安装时间大约需要10分钟。
以上是安装细节 安装后程序缩略图附:
qt程序出错,提示找不到mingwm10.dll的解决方法(没有找到mingwm10.dll,因此这个程序未能启动...) 2009-10-24 23:12 标签:qt 找不到mingw10.dll 出错 估计很多qt新手都会遇到这样的问题。出现这样的问题分两种情况,一种是电脑上已经安装了qt,第二种是编译好的qt程序拷贝到另外一台没有安装qt的电脑上 我们先说第一种情况。这种情况绝大多数的问题出在环境变量上。你会发现用Qt Command Promtp去执行编译好的qt程序是没有问题的,但双击图标执行程序就会出错。 请仔细看看刚进入Qt Command Promtp时屏幕上打印的几行字: Setting up a MinGW/Qt only environment. -- QTDIR set to e:\Qt\2009.04\qt -- PATH set to e:\Qt\2009.04\qt\bin -- Adding e:\Qt\2009.04\bin to PATH -- Adding C:\WINDOWS\System32 to PATH ... 由于qt默认是动态编译的,执行的时候需要加载动态库,而安装qt的时候并没有修改环境变量,所以它找不到某些库是很正常的。 这时只要修改一下环境变量就行了。进入“控制面板”,双击“系统”,选择“高级”,单击下面有一个名为“环境变量”的按钮。如图
-release 这个参数显而易见,就是编译Qt以发布版的模式进行,一般来说,最后系统完成后,库就应该是发布版。 -release 与上面对应,自然是调试版了,如果开发的话,可以选择它吧。 -debug-and-release 囧,上面那两个的儿子。 -developer-build 囧,我错了,开发者也可以用这个的,选了这个后,可以进行自动测试,不过还没去用过,以后可以研究研究。 -opensource -commercial 这两个参数是指是编译是商业版本的,还是开源版本呢,视个人情况而定。 -shared -static 这两个参数是指Qt的lib以动态还是静态编译生成,这自然也是视个人需要的。 -no-fast -fast 这两个就很有关系,如果对自己的电脑性能很有信心,那就选第一个,那所有的工程文件都会生成到makefiles中,那编译的时间,估计可以看完变形金刚了。如果选第二个,那就加入子目录和库到makefiles,这样就能加快编译的速度。 -no-largefile -largefile 顾名思义,支不支持大文件,一般来说,嵌入式里是不会有从超过4G的大文件的,那就选第一个吧。 -no-exceptions -exceptions 计算机英语够好的人都该懂,这个自然就是异常情况,选则编译器支持抛出异常,否则不支持。 -no-accessibility -accessibility 可访问性的支持,说实话,这个我真不知道有什么有用了。等哪天发现了,再来好好解释。-no-stl -stl 是都加入stl的支持,stl,这应该算是C++程序员应该都了解了,再不济,那也总听说过大名吧。 no-sql-
1. PC: win10 2. vs版本: vs2013 3. qt版本: qt5.5.0 x64 4. vs-addin: qt-vs-addin-1.2.4-opensource.exe 一、安装 vs和qt的安装一律采用默认安装; 建议修改qt的安装盘到d盘 二、配置qt环境 打开vs2013,配置qt(打开vs2013时会报错,是因为qt没有配置导致,不管它) 打开上图的Qt Options,如下图 选择add---> 添加 Version name选择Qt5.5.0 Path选择D:\Qt\Qt5.3.2\5.3\msvc2013_64_opengl ( 注意: 安装了不同的qt版本,那么上面的path也会不尽相同,不过最终都是找到带有msvc开头的. 若是qt版本不一样,请同时更换相应的版本号 ) 如下图所示:
三、新建工程 注意; 在建立工程之前, 请注意qt setting的配置,如下图(红框内一定要选中你上面配置了的, 否则qt会报错) 新建工程,如下图所示: 点击"确定"之后,来到qt的配置,直接点击finish(关于后续的qt配置,请参考其它文档,此处不讲)
此时直接编译会报错, 需要配置编译环境 1. 选中test工程(第一步) 2. 选择x64平台(第二步) 3. 确认qt setting中的下拉框选中设置的Qt5.5.2(如上图配置Default Qt/Win version的图) 4. 在qt菜单下选择qt-project-settings 设置version为Qt 5.5.2 (第三步)
最后,如果编译过, 请先清理解决方案, 然后再按f7编译. 此时便能编译成功.
Linux环境下Qt的编译 邵发2015/6/26 一、编译Qt 4.8.3 Qt本身其实就是由一个大型的库,在Linux使用时,首先要编译Qt本身。Qt压缩包是一个很容易编译的带了源码的项目,下面介绍如何编译它。 以下是对QT4.8.3的编译,如果你的版本不一致,只要把版本号目录名改一下就行了。 1. 在Linux下,解压缩Qt4.8.3的压缩包,例如 tar zxvf qt4.8.3.tar.gz -C /opt/build/qt4.8.3/ 2. 在命令行窗口中,切换到源码目录,例如 cd /opt/build/qt4.8.3/ 和普通的Linux项目一样,执行configure / make / make install三大步骤。 (1) configure 为了加快编译速度,先修改一下 projects.pro这个文件,把不需要编译的行前加#号注释一下。(否则编译过程极为漫长,因为它把examples和demos都编译了一遍) for(PROJECT, $$list($$lower($$unique(QT_BUILD_PARTS)))) { isEqual(PROJECT, tools) { SUBDIRS += tools } else:isEqual(PROJECT, examples) { # SUBDIRS += examples } else:isEqual(PROJECT, demos) { # SUBDIRS += demos 然后,执行configure进行配置,例如 ./configure -prefix /opt/qt4.8.3 -opensource -no-qt3support -nomake examples -nomake demos -no-webkit 注:在编译选项中,为了加快编译速度,取消了example,demos和webkit模块的编译。 (2) make 输入make命令,开始编译 make