图形界面应用程序设计Word下载.docx

上传人:b****6 文档编号:19332381 上传时间:2023-01-05 格式:DOCX 页数:15 大小:285.45KB
下载 相关 举报
图形界面应用程序设计Word下载.docx_第1页
第1页 / 共15页
图形界面应用程序设计Word下载.docx_第2页
第2页 / 共15页
图形界面应用程序设计Word下载.docx_第3页
第3页 / 共15页
图形界面应用程序设计Word下载.docx_第4页
第4页 / 共15页
图形界面应用程序设计Word下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

图形界面应用程序设计Word下载.docx

《图形界面应用程序设计Word下载.docx》由会员分享,可在线阅读,更多相关《图形界面应用程序设计Word下载.docx(15页珍藏版)》请在冰豆网上搜索。

图形界面应用程序设计Word下载.docx

拷贝库文件:

#cd/home/

#mkdirsprife//新建文件夹sprife

#cdsprife//打开文件夹sprife

#mkdirfor_pc

#cdfor_pc

#cp/up-Star2410/gui/Qt/src/qt-x11-opensource-src-4.4.0.tar.gz.///拷贝文件

安装编译器arm-linux-gcc-3.4.1:

[root@BCsrc]#cd/up-Star2410/gui/Qt/tools//打开tools文件夹

[root@BCtools]#tarxjvfarm-linux-gcc-3.4.1.tar.bz2-C.///解压缩文件

[root@BCtools]#vi/root/.bash_profile//打开文件

将该文件中的PATH变量改为PATH=$PATH:

$HOME/bin:

/up-Star2410/gui/Qt/tools/usr/local/arm/3.4.1/bin/,存盘后退出。

[root@BCtools]#source/root/.bash_profile

如果安装正确的话,在任意路径下输入ar后按Tab键即可列出编译器文件。

Qt本机环境的搭建:

#cd/home/sprife/for_pc

#tarxzvfqt-x11-opensource-src-4.4.0.tar.gz//文件解压缩

#cdqt-x11-opensource-src-4.4.0

#./configure-prefix/usr/local/Trolltech/Qt-x11-4.4.0//对Qt进行配置

出现安装提示时选择yes注意大小写

#gmake//编译QT环境

#gmakeinstall//安装QT环境

以上各步都成功编译通过后,通过运行Qt/Embedded自带的demo来查看运行结果。

#cd/home/sprife/for_pc/qt-x11-opensource-src-4.4.0/examples/widgets/wiggly/

#./wiggly//运行可执行文件

运行结果如图1:

图1

Hello,QT!

程序设计:

在已经建立好了在本机上开发Qt应用程序环境下,编写一个“Hello,QT!

”的程序来了解Qt程序设计。

建立一个名为hello的目录,在目录下建立一个名为hello.cpp的c++源文件:

#cd/home/sprife/

#mkdirhello

#vihello.c

编辑hello.cpp源文件,填入程序代码,如图2:

图2

第1行和第2行包含了两个类的定义:

QApplication和QLabel。

对于每一个Qt的类,都会有一个同名的头文件,头文件里包含了这个类的定义。

第3行是程序的入口。

几乎在使用Qt的所有情况下,main()函数只需要在把控制权转交给Qt库之前执行一些初始化,然后Qt库通过事件来向程序告知用户的行为。

argc是命令行变量的数量,argv是命令行变量的数组。

这是一个C/C++特征。

它不是Qt专有的,无论如何Qt需要处理这些变量

第5行定义了一个QApplication对象App。

QApplication管理了各种各样的应用程序的广泛资源,比如默认的字体和光标。

App的创建需要argc和argv是因为Qt支持一些自己的命令行参数。

在每一个使用Qt的应用程序中都必须使用一个QApplication对象,并且在任何Qt的窗口系统部件被使用之前创建此对象是必须的。

App在这里被创建并且处理后面的命令行变量(比如在X窗口下的-display)。

需注意,所有被Qt识别的命令行参数都会从argv中被移除(并且argc也因此而减少)。

第6行创建了一个QLabel窗口部件(widget),用来显示“Hello,Qt!

”。

第7行使我们创建的QLabel可见。

当窗口部件被创建的时候,它总是隐藏的,必须调用show()来使它可见。

通过这个特点我们可以在显示这些窗口部件之前定制它们,这样就不会出现闪烁的情况。

第8行就是main()将控制权交给Qt。

在这里,程序进入了事件循环。

事件循环是一种stand-by的模式,程序会等待用户的动作(比如按下鼠标或者是键盘)。

用户的动作将会产生程序可以做出反应的事件(也被称为“消息”)。

程序对这些事件的反应通常是执行一个或几个函数。

为了简单起见,我们没有在main()函数的结尾处调用delete来删除QLabel对象。

这种内存泄露是无害的,因为像这样的小程序,在结束时操作系统将会释放程序占用的内存堆。

编译、运行程序,如图3:

#/home/sprife/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake-project

#/home/sprife/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake

#make

#./hello//执行程序

图3

(二)使用QtDesigner编写程序、编译、本机上运行

使用QtDesigner实现一个对话框,包括以下步骤:

1)、创建并初始化子窗口部件。

2)、将子窗口部件放置到布局当中。

3)、对Tab的顺序进行设置。

4)、放置信号和槽的连接。

5)、完成对话框的通用槽的功能。

编写QT-X11程序

进入QTforX11目录中进行设计

[root@vm-dev~]#cd/home/sprife/for_pc/

[root@vm-devfor_pc]#mkdirtestqt-x11//建立实验目录

[root@vm-devfor_pc]#cdtestqt-x11///打开文件夹

[root@vm-devtestqt-x11]#

使用designer编辑程序控件:

/home/sprife/for_pc/qt-x11-opensource-src-4.4.0/bin/designer//运行QtDesigner

在弹出designer界面,可以看到在窗口左上方有一个“templates\forms”的菜单,下面有四个可供选择的模板。

第一个和第二个都是对话框,区别在于对话框中按钮的位置不同。

第三个是主窗口,第四个是窗口部件。

一般我们选择Widget就可以了。

选择一个窗口布局Widget点击->

创建,如图4和图5:

图4

图5

拖拽几个简单的控件(TextEdit、PushBotton、TextLabel)进行界面设计,初始化控件及相关属性内容,如图6:

图6

建立信号与槽的连接,在弹出窗口中,show按钮与文本编辑框的连接clicked->

clear,如图7:

图7

同样建立第二组信号与槽的连接,在弹出窗口,exit按钮与Form的连接licked->

closed,图8:

图8

退出界面编辑保存为UI格式testx11.ui。

[root@vm-devtestqt-x11]#ls//查看文件夹下内容

testx11.ui

在/home/sprife/for_pc/testqt-x11路径下新建main.cpp文件。

编辑main.cpp函数:

[root@vm-devtestqt-x11]#vimain.cpp//打开文件

#include"

ui_testx11.h"

//界面文件生成的头文件

intmain(intargc,char*argv[])//程序入口

{

QApplicationapp(argc,argv);

//创建QApplication类对象app

QWidget*widget=newQWidget;

Ui:

:

Formui;

ui.setupUi(widget);

widget->

show();

//显示

returnapp.exec();

//退出

}

[root@vm-devtestqt-x11]#ls//查看文件夹内容

main.cpptestx11.ui

编译程序生成工程文件.pro:

/home/sprife/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake-project

[root@vm-devtestqt-x11]#ls

testqt-x11.protestx11.uimain.cpp

编译生成Makefile文件:

/home/sprife/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake

Makefiletestqt-x11.protestx11.uimain.cpp

编译生成可执行文件:

[root@vm-devtestqt-x11]#make

main.cppmain.oMakefiletestqt-x11testqt-x11.protestx11.uiui_testx11.h

执行编译好的程序测试下观察效果,如图9

[root@vm-devtestqt-x11]#./testqt-x11

图9

(三)移植QT/E到ARM设备

编译QT/E环境

1、拷贝并解压QT/E库及触摸屏库到实验目录for_arm

#cd/home/sprife/

#mkdirfor_arm

#cdfor_arm

#cp/up-Star2410/gui/Qt/src/qt-embedded-linuxopensource-

src-4.4.0.tar.bz2./

#cp/up-Star2410/gui/Qt/src/tslib-1.4.tar.bz2./

#tarxjvfqt-embedded-linux-opensource-src-4.4.0.tar.bz2

#tarxjvftslib-1.4.tar.bz2

2、编译tslib1.4触摸屏库

#cdtslib-1.4

#vibuild.sh

修改该脚本文件为如下:

#/bin/sh

exportCC=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

makeinstall

退出保存后编译:

#./build.sh

3、编译QT/E库

#cd/home/sprife/qt4/for_arm/

#cp-atslib1.4-install/lib/*

qt-embedded-linux-opensource-src-4.4.0/lib/

#cp-atslib1.4-install/include/ts*

qt-embedded-linux-opensource-src-4.4.0/include/

#cdqt-embedded-linux-opensource-src-4.4.0

#./configure-embeddedarm-xplatformqws/linux-arm-g++-depths16-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-install/lib-prefix

/mnt/nfs/Trolltech/qt-embedded-4.4.0

#make

#makeinstall

编译QT/E程序到ARM设备上运行

在/home/sprife/路径下新建for_arm文件夹,将/home/sprife/for_pc/路径下testqt-x11文件夹拷贝到for_arm文件夹中。

编译QT/E程序:

#cd/home/sprife/for_arm///进入目标文件夹

#cp/home/sprife/for_pc/testqt-x11/.–arf//拷贝文件夹

#cdtestqt-x11/

#/home/sprife/for_arm/qt-embedded-linux-opensource-src-4.4.0/bin/qmake–project//编译程序生成工程文件.pro

#/home/sprife/for_arm/qt-embedded-linux-opensource-src-4.4.0/bin/qmake

//编译生成Makefile文件

#make//编译生成可执行文件

ARM端挂载mnt共享目录:

#mount–tnfs-onolock192.168.1.118:

/home/sprife/for_pc/testqt-x11/mnt

拷贝编译好的QT/E程序到QT4Embedded文件夹:

#cdQT4Embedded

#cp/mnt/testqt-x11./–arf

输入以下命令对相关环境参量进行修改:

up-tech:

~/QT4Embeded#viqtg4demo.sh

参量修改如下:

exportQTDIR=$PWD

exportLD_LIBRARY_PATH=$PWD/lib:

/lib

exportTSLIB_TSDEVICE=/dev/event0

exportTSLIB_PLUGINDIR=$PWD/lib/ts

exportTSLIB_CONSOLEDEVICE=none

exportQT_TSLIBDIR=$PWD/lib

exportTSLIB_CONFFILE=$PWD/etc/ts.conf

exportPOINTERCAL_FILE=$PWD/etc/ts-calib.conf

exportQWS_MOUSE_PROTO=tslib:

/dev/event0

exportTSLIB_CALIBFILE=$PWD/etc/ts-calib.conf

exportQT_QWS_FONTDIR=$PWD/lib/fonts

exportLANG=zh_CN

exportQWS_DISPLAY="

LinuxFb:

mmWidth160:

mmHeight120:

0"

/root/QT4Embeded/testqt-x11–qws//修改参量行

~

-qtg4demo.sh1/175%

查看、运行可执行文件:

~/QT4Embeded#ls

demoetclibpaiweiqtg4demo.shtestqt-x11

~/QT4Embeded#./qtg4demo.sh

执行文件后,开发板上可观察到与图9相同界面窗口,在触摸屏上点击show便可清除文本框内容(点击exit退出执行界面)。

三.技术实现问题

(一)通过FTP向开发板传送可执行文件

由于ARM端挂载mnt共享目录时常出现挂在不上的问题,我们采用以FTP上传的方式将可执行文件送到开发板,来达到同一目的。

首先,在Windows系统下,利用LeadFTP以登录名phy、密码123456登录虚拟机IP,选择路径,将编译生成的可执行文件下载到指定文件夹。

然后,再利用LeadFTP匿名登录开发板IP,将刚下载的可执行文件上传至pub文件夹中。

最后,再在Xshell上将pub中可执行文件拷贝到执行目录下运行。

拷贝语句如下:

#cd/QT4Embedded/

#cp/var/ftp/pub/testqt-x11./–arf

在这里还应注意,若pub文件夹下已有需上传的同名文件是不能够覆盖掉的,同时也不能直接在这里删除,文件的删除必须在Xshell下利用如下语句完成:

#cd/var/ftp/pub/

#rmtestqt-x11

删除完成后,重新上传即可。

(二)释放用户权限

在程序运行过程中,我们还遇到了用户权限不够的问题,在这里我们的解决方法是在Xshell下利用如下语句来对用户权限进行释放:

#chmod777testqt-x11

四.总结与体会

 

设计性实验报告成绩:

指导教师签名:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1