QT4编程指导.pdf
《QT4编程指导.pdf》由会员分享,可在线阅读,更多相关《QT4编程指导.pdf(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、QT4QT4 完全开发手册完全开发手册 Author:sprife2008.12.12 硬件:UP-ARM2410CL、PC 机 Pentumn500 以上,硬盘 80G 以上。软件:PC 机操作系统 RHEL4 xshell ARM-Linux 开发环境 qt-embedded-linux-opensource-src-4.4.0.tar.bz2 tslib-1.4.tar.bz2、qt-x11-opensource-src-4.4.0.tar.gz 一、一、编译编译 QTQT-X11X11 环境环境 cd/home/sprife mkdir qt4 cd qt4 mkdir for_pc
2、mkdir for_arm cp/home/qt-x11-opensource-src-4.4.0.tar.gz /home/sprife/qt4/for_pc cp/home/qt-embedded-linux-opensource-src-4.4.0.tar.bz2 /home/sprife/qt4/for_arm cp/home/tslib-1.4.tar.bz2/home/sprife/qt4/for_arm cd/home/sprife/qt4/for_pc tar xzvf qt-x11-opensource-src-4.4.0.tar.gz cd qt-x11-opensourc
3、e-src-4.4.0 ./configure(./configure-prefix/usr/local/Trolltech/Qt-x11-4.4.0)(yes)gmake gmake install 二、二、编译编译 QT/EQT/E 环境环境 注:核心板使用注:核心板使用 PXA270PXA270 可略去触摸屏步骤使用可略去触摸屏步骤使用 USBUSB 鼠标作为输入鼠标作为输入 1、编译 tslib1.4 触摸屏库 cd/home/sprife/qt4/for_arm tar xjvf tslib-1.4.tar.bz2 cd tslib-1.4 vi build.sh#/bin/sh e
4、xport CC=arm-linux-gcc ./autogen.sh echo ac_cv_func_malloc_0_nonnull=yes arm-linux.cache ./configure-host=arm-linux-cache-file=arm-linux.cache -prefix=$PWD/./tslib1.4-install make make install 编译:./build.sh 2、编译 QT/E 库 cd/home/sprife/qt4/for_arm tar xjvf qt-embedded-linux-opensource-src-4.4.0.tar.bz
5、2 cp-a tslib1.4-install/lib/*qt-embedded-linux-opensource-src-4.4.0/lib/cp-a tslib1.4-install/include/ts*qt-embedded-linux-opensource-src-4.4.0/include/cd qt-embedded-linux-opensource-src-4.4.0 ./configure-embedded arm-xplatform qws/linux-arm-g+-depths 16 -little-endian-qt-mouse-linuxtp-qt-mouse-tsl
6、ib -I/home/sprife/qt4/for_arm/tslib1.4-install /include L/home/sprife/qt4/for_arm/tslib1.4-install/lib -prefix/mnt/nfs/Trolltech/qt-embedded-4.4.0 make make install -prefix 选项要特殊注意,该指定目录必须要与实际 NFS 目录对应否则字体处会出现错误 3、测试触摸屏及 QT/E 程序 1、建立 NFS 共享目录/arm2410cl cd/mkdir arm2410cl cd arm2410cl mkdir Trolltech
7、 cd Trolltech mkdir qt-embedded-4.4.0 cd qt-embedded-4.4.0 cp /home/sprife/qt4/for_arm/qt-embedded-linux-opensource-src-4.4.0/l ib/./-arf cp/home/sprife/qt4/for_arm/tslib1.4-install/etc/./-arf cp/home/sprife/qt4/for_arm/tslib1.4-install/bin/./-arf 2、ARM 端挂载 NFS 共享目录 mount-o nolock,rsize=4096,wsize=4
8、096 192.168.1.111:/arm2410cl /mnt/nfs 3、设置环境变量 cd/mnt/nfs/Trolltech/qt-embedded-4.4.0 export QTDIR=$PWD export LD_LIBRARY_PATH=$PWD/lib export TSLIB_TSDEVICE=/dev/input/event0 export TSLIB_PLUGINDIR=$PWD/lib/ts export TSLIB_CONSOLEDEVICE=none export TSLIB_CONFFILE=$PWD/etc/ts.conf export POINTERCAL_
9、FILE=$PWD/etc/ts-calib.conf export QWS_MOUSE_PROTO=tslib:/dev/input/event0 export TSLIB_CALIBFILE=$PWD/etc/ts-calib.conf export LANG=zh_CN insmod/mnt/yaffs/ts-uptech.o 4、执行触摸屏校准程序(在 qt-embedded-4.4.0 下)./bin/ts_calibrate 如果出现如下错误提示:Couldnt load module pthres No raw modules loaded.ts_config:Success 则
10、更改 ts.conf 配置文件选择一个输入设备 vi/mnt/nfs/Trolltech/qt-embedded-4.4.0/etc/ts.conf#Uncomment if you wish to use the linux input layer event interface#module_raw input 更改为#Uncomment if you wish to use the linux input layer event interface module_raw input 若提示:/dev/touchscreen/ucb1x00:No such file or director
11、y 则一般是环境变量没设置好的问题,可以重新仔细检查环境变量的设置 再次执行触摸屏校准程序即可,程序会自动存储坐标校准信息以便应用程序 使用。此时如无错误则进入 5 点触摸屏校准程序并存储配置文件 还可以进行其他触摸屏测试程序 ts_test、ts_print 等 5、执行 QT/E 带触摸屏的例子程序 在宿主机端拷贝编译好的 ARM 端可执行程序 cp /home/sprife/qt4/for_arm/qt-embedded-linux-opensource-src-4.4.0/e xamples/widgets/digitalclock/digitalclock /arm2410cl/Tr
12、olltech/qt-embedded-4.4.0/ARM 端执行该程序 ./digitalclock qws 如出现如下错误:error while loading shared libraries:libz.so.1:cannot open shared object file:No such file or directory 则在宿主机端交叉编译器目录下搜索该库文件,拷贝到 lib 目录下(具体库 文件位置可能不尽相同)cp/opt/host/armv4l/armv4l-unknown-linux/lib/libz.so.1 /arm2410cl/Trolltech/qt-embedd
13、ed-4.4.0/lib/若出现错误 error while loading shared libraries:libstdc+.so.6:cannot open shared object file:No such file or directory 拷贝 cp /home/bc/gcc-3.4.2-glibc-2.2.5/arm-linux/arm-linux/lib/libstdc+.so.6/arm2410cl/Trolltech/qt-embedded-4.4.0/lib/若 error while loading shared libraries:libgcc_s.so.1:can
14、not open shared object file:No such file or directory 则 cp /home/bc/gcc-3.4.2-glibc-2.2.5/arm-linux/arm-linux/lib/libgcc_s.s o.1/arm2410cl/Trolltech/qt-embedded-4.4.0/lib/如果想让 QT/E 在 ARM 端支持 USB 鼠标,可以在 ARM 端配置环境变量 2410 核心板:export QWS_MOUSE_PROTO=MouseMan:/dev/input/mouse0 270 核心板:export QWS_MOUSE_PR
15、OTO=TPanel:/dev/touchpanel MouseMan:/dev/mice 即可。三、三、编写编写 QTQT-X11X11 程序程序 进入 QT for X11 目录中进行设计 rootvm-dev#cd/home/sprife/qt4/for_pc/建立实验目录 rootvm-dev for_pc#mkdir testqt-x11 rootvm-dev for_pc#cd testqt-x11/rootvm-dev testqt-x11#使用 designer 编辑程序控件 rootvm-dev testqt-x11#/home/sprife/qt4/for_pc/qt-x1
16、1-opensource-src-4.4.0/bin/designer 将弹出 designer 界面 选择一个窗口布局 Widget 点击-创建 拖拽几个简单的控件(TextEdit、PushBotton、TextLabel)进行界面设计 初始化控件及相关属性内容 建立信号与槽的连接 show 按钮与文本编辑框的连接 clicked-clear 第二组信号与槽的连接 exit 按钮与 Form 的连接 clicked-closed 退出界面编辑保存为 UI 格式 testx11.ui rootvm-dev testqt-x11#/home/sprife/qt4/for_pc/qt-x11-o
17、pensource-src-4.4.0/bin/designer rootvm-dev testqt-x11#ls testx11.ui rootvm-dev testqt-x11#编辑 main.cpp 函数 rootvm-dev testqt-x11#vi main.cpp#include ui_testx11.h int main(int argc,char*argv)QApplication app(argc,argv);QWidget*widget=new QWidget;Ui:Form ui;ui.setupUi(widget);widget-show();return app.e
18、xec();rootvm-dev testqt-x11#ls main.cpp testx11.ui rootvm-dev testqt-x11#编译程序生成工程文件.pro rootvm-dev testqt-x11#/home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake-project rootvm-dev testqt-x11#ls testqt-x11.pro testx11.ui main.cpp 编译生成 Makefile 文件 rootvm-dev testqt-x11#/home/sprife/qt4/for_
19、pc/qt-x11-opensource-src-4.4.0/bin/qmake rootvm-dev testqt-x11#ls Makefile testqt-x11.pro testx11.ui main.cpp 编译生成可执行文件 rootvm-dev testqt-x11#make/usr/local/Trolltech/Qt-x11-4.4.0/bin/uic testx11.ui-o ui_testx11.h g+-c-pipe-O2-Wall-W-D_REENTRANT-DQT_NO_DEBUG-DQT_GUI_LIB-DQT_CORE_LIB-DQT_SHARED-I/usr
20、/local/Trolltech/Qt-x11-4.4.0/mkspecs/linux-g+-I.-I/usr/local/Trolltech/Qt-x11-4.4.0/include/QtCore-I/usr/local/Trolltech/Qt-x11-4.4.0/include/QtCore-I/usr/local/Trolltech/Qt-x11-4.4.0/include/QtGui-I/usr/local/Trolltech/Qt-x11-4.4.0/include/QtGui-I/usr/local/Trolltech/Qt-x11-4.4.0/include-I.-I.-I.-
21、o main.o main.cpp g+-Wl,-rpath,/usr/local/Trolltech/Qt-x11-4.4.0/lib-o testqt-x11 main.o -L/usr/local/Trolltech/Qt-x11-4.4.0/lib-lQtGui-L/usr/local/Trolltech/Qt-x11-4.4.0/lib-L/usr/X11R6/lib-lpng-lSM-lICE-pthread-pthread-lXi-lXrender-lXrandr-lfreetype-lfontconfig-lXext-lX11-lQtCore-lz-lm-pthread-lgt
22、hread-2.0-lglib-2.0-lrt-ldl-lpthread rootvm-dev testqt-x11#ls main.cpp main.o Makefile testqt-x11 testqt-x11.pro testx11.ui ui_testx11.h rootvm-dev testqt-x11#程序编译成功了 执行编译好的程序测试下观察效果 rootvm-dev testqt-x11#./testqt-x11 QTQT 编程扩展编程扩展 编写自定义的信号与槽编写自定义的信号与槽 将上个实验的目录复制出另一份并改名为 testmyqt-x11 rootvm-dev for_
23、pc#cd/home/sprife/qt4/for_pc/rootvm-dev for_pc#cp testqt-x11 testmyqt-x11 arf rootvm-dev for_pc#cd testmyqt-x11/rootvm-dev testmyqt-x11#编辑自己定义槽函数的头文件 myqt.h 包含 ui_testx11.h 头文件,继承其控件类,定义自定义函数文件处理函数MyDlg(),并添加自定义函数槽 ShowInfo()即可。rootvm-dev testmyqt-x11#vi myqt.h#ifndef _DLG_H_#define _DLG_H_#include#
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- QT4 编程 指导
限制150内