版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、QT4编程实验指导硬件:博创经典2410L、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 /downloads一、 编译QT-X11环境cd /home/sprifemkdir qt4cd qt4mkdir for_pcmkdir for_armcp /home/qt-x11-open
2、source-src-4.4.0.tar.gz /home/sprife/qt4/for_pccp /home/qt-embedded-linux-opensource-src-4.4.0.tar.bz2 /home/sprife/qt4/for_armcp /home/tslib-1.4.tar.bz2 /home/sprife/qt4/for_armcd /home/sprife/qt4/for_pctar xzvf qt-x11-opensource-src-4.4.0.tar.gzcd qt-x11-opensource-src-4.4.0./configure (./configur
3、e -prefix /usr/local/Trolltech/Qt-x11-4.4.0)(yes)gmakegmake install二、 编译QT/E环境注:核心板使用PXA270可略去触摸屏步骤使用USB鼠标作为输入1、编译tslib1.4触摸屏库cd /home/sprife/qt4/for_armtar xjvf tslib-1.4.tar.bz2cd tslib-1.4vi build.sh#/bin/shexport CC=arm-linux-gcc./autogen.shecho ac_cv_func_malloc_0_nonnull=yes arm-linux.cache./c
4、onfigure -host=arm-linux -cache-file=arm-linux.cache -prefix=$PWD/./tslib1.4-installmakemake install编译:./build.sh2、编译QT/E库cd /home/sprife/qt4/for_armtar xjvf qt-embedded-linux-opensource-src-4.4.0.tar.bz2cp -a tslib1.4-install/lib/* qt-embedded-linux-opensource-src-4.4.0/lib/ cp -a tslib1.4-install/
5、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-tslib -I/home/sprife/qt4/for_arm/tslib1.4-install/include L/home/sprife/qt4/for_arm/tslib1.4
6、-install/lib -prefix /mnt/nfs/Trolltech/qt-embedded-4.4.0makemake install-prefix 选项要特殊注意,该指定目录必须要与实际NFS目录对应否则字体处会出现错误3、测试触摸屏及QT/E程序1、建立NFS共享目录/arm2410clcd /mkdir arm2410clcd arm2410clmkdir Trolltechcd Trolltechmkdir qt-embedded-4.4.0cd qt-embedded-4.4.0cp /home/sprife/qt4/for_arm/qt-embedded-linux-o
7、pensource-src-4.4.0/lib/ ./ -arfcp /home/sprife/qt4/for_arm/tslib1.4-install/etc/ ./ -arf cp /home/sprife/qt4/for_arm/tslib1.4-install/bin/ ./ -arf2、ARM端挂载NFS共享目录mount -o nolock,rsize=4096,wsize=4096 11:/arm2410cl /mnt/nfs3、设置环境变量cd /mnt/nfs/Trolltech/qt-embedded-4.4.0export QTDIR=$PWDexp
8、ort LD_LIBRARY_PATH=$PWD/libexport TSLIB_TSDEVICE=/dev/input/event0export TSLIB_PLUGINDIR=$PWD/lib/tsexport TSLIB_CONSOLEDEVICE=noneexport TSLIB_CONFFILE=$PWD/etc/ts.confexport POINTERCAL_FILE=$PWD/etc/ts-calib.confexport QWS_MOUSE_PROTO=tslib:/dev/input/event0export TSLIB_CALIBFILE=$PWD/etc/ts-cali
9、b.confexport LANG=zh_CN4、执行触摸屏校准程序(在qt-embedded-4.4.0下)./bin/ts_calibrate如果出现如下错误提示:Couldnt load module pthresNo raw modules loaded.ts_config: Success则更改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_
10、raw input更改为# Uncomment if you wish to use the linux input layer event interfacemodule_raw input若提示:/dev/touchscreen/ucb1x00: No such file or directory则一般是环境变量没设置好的问题,可以重新仔细检查环境变量的设置再次执行触摸屏校准程序即可,程序会自动存储坐标校准信息以便应用程序使用。此时如无错误则进入5点触摸屏校准程序并存储配置文件还可以进行其他触摸屏测试程序ts_test、ts_print等5、执行QT/E带触摸屏的例子程序在宿主机端拷贝编译
11、好的ARM端可执行程序cp /home/sprife/qt4/for_arm/qt-embedded-linux-opensource-src-4.4.0/examples/widgets/digitalclock/digitalclock /arm2410cl/Trolltech/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 director
12、y则在宿主机端交叉编译器目录下搜索该库文件,拷贝到lib目录下(具体库文件位置可能不尽相同)cp /opt/host/armv4l/armv4l-unknown-linux/lib/libz.so.1 /arm2410cl/Trolltech/qt-embedded-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-l
13、inux/arm-linux/lib/libstdc+.so.6 /arm2410cl/Trolltech/qt-embedded-4.4.0/lib/若error while loading shared libraries: libgcc_s.so.1: 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/libgcc_s.so.1 /arm2410cl/Trolltech/qt-embedded-4.4.0/l
14、ib/如果想让QT/E在ARM端支持USB鼠标,可以在ARM端配置环境变量2410核心板:export QWS_MOUSE_PROTO=MouseMan:/dev/input/mouse0270核心板:export QWS_MOUSE_PROTO=TPanel:/dev/touchpanel MouseMan:/dev/mice即可。三、 编写QT-X11程序进入QT for X11 目录中进行设计rootvm-dev # cd /home/sprife/qt4/for_pc/建立实验目录rootvm-dev for_pc# mkdir testqt-x11rootvm-dev for_pc#
15、 cd testqt-x11/rootvm-dev testqt-x11#使用designer编辑程序控件rootvm-dev testqt-x11# /home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/designer将弹出designer界面选择一个窗口布局Widget 点击-创建拖拽几个简单的控件(TextEdit、PushBotton、TextLabel)进行界面设计初始化控件及相关属性内容建立信号与槽的连接show按钮与文本编辑框的连接clicked-clear第二组信号与槽的连接exit按钮与Form的连接clicked-
16、closed退出界面编辑保存为UI格式 testx11.uirootvm-dev testqt-x11# /home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/designer rootvm-dev testqt-x11# lstestx11.uirootvm-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, ar
17、gv); QWidget *widget = new QWidget; Ui:Form ui; ui.setupUi(widget); widget-show(); return app.exec(); rootvm-dev testqt-x11# lsmain.cpp testx11.uirootvm-dev testqt-x11#编译程序生成工程文件.prorootvm-dev testqt-x11# /home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake -projectrootvm-dev testqt-x11# ls
18、 testx11.ui main.cpp编译生成Makefile文件rootvm-dev testqt-x11# /home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake rootvm-dev testqt-x11# lsMakefile testx11.ui main.cpp编译生成可执行文件rootvm-dev testqt-x11# make/usr/local/Trolltech/Qt-x11-4.4.0/bin/uic testx11.ui -o ui_test
19、x11.hg+ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/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/Q
20、tGui -I/usr/local/Trolltech/Qt-x11-4.4.0/include/QtGui -I/usr/local/Trolltech/Qt-x11-4.4.0/include -I. -I. -I. -o main.o main.cppg+ -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/X11
21、R6/lib -lpng -lSM -lICE -pthread -pthread -lXi -lXrender -lXrandr -lfreetype -lfontconfig -lXext -lX11 -lQtCore -lz -lm -pthread -lgthread-2.0 -lglib-2.0 -lrt -ldl -lpthreadrootvm-dev testqt-x11# lsmain.cpp main.o Makefile testqt-x11 testx11.ui ui_testx11.hrootvm-dev testqt-x11#程序编译成功
22、了执行编译好的程序测试下观察效果rootvm-dev testqt-x11# ./testqt-x11QT编程扩展编写自定义的信号与槽将上个实验的目录复制出另一份并改名为testmyqt-x11rootvm-dev for_pc# cd /home/sprife/qt4/for_pc/rootvm-dev for_pc# cp testqt-x11 testmyqt-x11 arfrootvm-dev for_pc# cd testmyqt-x11/rootvm-dev testmyqt-x11#编辑自己定义槽函数的头文件myqt.h包含ui_testx11.h头文件,继承其控件类,定义自定义
23、函数文件处理函数MyDlg(),并添加自定义函数槽ShowInfo()即可。rootvm-dev testmyqt-x11# vi myqt.h#ifndef _DLG_H_#define _DLG_H_ #include #include class MyDlg : public QDialog Q_OBJECT public: MyDlg(); public slots: void ShowInfo(); private: Ui:Form ui;#endif 编辑myqt.cpp文件进行函数功能实现其中ShowInfo()函数槽中定义改变textEdit的内容为“Welcome to UP
24、-TECH”rootvm-dev testmyqt-x11# vi myqt.cpp#include myqt.h MyDlg:MyDlg() ui.setupUi(this); QObject:connect(ui.pushButton, SIGNAL(clicked(), this, SLOT(ShowInfo(); QObject:connect(ui.pushButton_2, SIGNAL(clicked(), this, SLOT(close(); void MyDlg:ShowInfo()ui.textEdit-setHtml(QApplication:translate(For
25、m, nnp, li white-space: pre-wrap; nnWelcome to UP-TECH, 0, QApplication:UnicodeUTF8);重新编辑main.cpp函数包含自定义头文件并使用自定义的类对象进行QT实现rootvm-dev testmyqt-x11# vi main.cpp#include #include myqt.h int main(int argc, char *argv) QApplication app(argc, argv); MyDlg *mydlg = new MyDlg; return mydlg-exec();查看当前目录文件r
26、ootvm-dev testmyqt-x11# lsmain.cpp myqt.cpp myqt.h testx11.uirootvm-dev testmyqt-x11#编译程序:rootvm-dev testmyqt-x11# /home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake -projectrootvm-dev testmyqt-x11# /home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake rootvm-dev testmyqt-x11# mak
27、e/usr/local/Trolltech/Qt-x11-4.4.0/bin/uic testx11.ui -o ui_testx11.hg+ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/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.
28、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. -o main.o main.cppg+ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Tro
29、lltech/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. -
30、o myqt.o myqt.cpp/usr/local/Trolltech/Qt-x11-4.4.0/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/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
31、-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. myqt.h -o moc_myqt.cppg+ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-x11-4.4.0/mkspecs/linux-g+ -I. -I/
32、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. -o moc_myqt.o moc_myqt.cppg+ -Wl,-rpath,/usr/
33、local/Trolltech/Qt-x11-4.4.0/lib -o testmyqt-x11 main.o myqt.o moc_myqt.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
34、 -lgthread-2.0 -lglib-2.0 -lrt -ldl -lpthreadrootvm-dev testmyqt-x11# lsmain.cpp main.o Makefile moc_myqt.cpp moc_myqt.o myqt.cpp myqt.h myqt.o testmyqt-x11 testx11.ui ui_testx11.hrootvm-dev testmyqt-x11#编译成功执行可执行文件rootvm-dev testmyqt-x11# ./testmyqt-x11如图:点击自己重新定义的show按钮,查看自己定义的功能。
35、四、 编写Qt/E程序1、 将上节实验使用的QT程序代码,无需更改,使用编译Qt/E库时候生成的相关工具qmake重新编译程序,即可生成Qt/E的程序。进入testmyqt-x11目录,清除原有编译中间过程文件rootvm-dev # cd testmyqt-x11rootvm-dev testmyqt-x11# lsmain.cpp Makefile moc_myqt.o myqt.h testmyqt-x11 testx11.uimain.o moc_myqt.cpp myqt.cpp myqt.o ui_testx11.hrootvm-dev testm
36、yqt-x11# make clean/home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake -unix -o Makefile rm -f moc_myqt.cpprm -f ui_testx11.hrm -f main.o myqt.o moc_myqt.orm -f * core *.corerootvm-dev testmyqt-x11#使用Qt/E工具重新编译rootvm-dev testmyqt-x11# /home/sprife/qt4/for_arm/qt-embedded-linux-opensource-src-4.4.0/bin/qmake -projectrootvm-dev testmyqt-x11# /home/sprife/qt4/for_arm/qt-embedded-linux-opensource-src-4.4.0/bin/qmake rootvm-dev
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国烟草总公司西藏自治区公司校园招聘笔试备考题库及答案解析
- 2026年中国移动浙江分公司校园招聘笔试参考题库及答案解析
- 中考物理难点专题训练与巩固
- 销售团队激励机制设计及实践案例
- 2024年全国高考数学模拟试卷及解析
- 调研报告写作技巧与范例分析
- 2026江苏南京师范大学体育教师短期招聘1人考试参考题库及答案解析
- 绿化项目劳务合同范本
- 2026四川成都市青白江区医疗卫生事业单位考核招聘急需紧缺卫生专业技术人才18人考试参考试题及答案解析
- 专家讲座心得与职业成长结合实录
- 对简支钢桁架桥的设计进行计算分析
- 面部美容缝合技术要点
- 《运动营养指导》课件
- 化工原理实验--绪论学习资料
- 温室火灾的防控与处理
- 空调安装调试及售后服务方案
- 4.3.1空间直角坐标系市公开课一等奖课件公开课一等奖课件省赛课获奖课件
- 居然之家租赁合同
- 四乙基铅抗爆剂生产技术项目可行性研究报告
- 中考复习之标点符号的使用方法79张课件
- 社会建构主义
评论
0/150
提交评论