QT4编程指导Word文档格式.docx

上传人:b****5 文档编号:19190457 上传时间:2023-01-04 格式:DOCX 页数:18 大小:1.16MB
下载 相关 举报
QT4编程指导Word文档格式.docx_第1页
第1页 / 共18页
QT4编程指导Word文档格式.docx_第2页
第2页 / 共18页
QT4编程指导Word文档格式.docx_第3页
第3页 / 共18页
QT4编程指导Word文档格式.docx_第4页
第4页 / 共18页
QT4编程指导Word文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

QT4编程指导Word文档格式.docx

《QT4编程指导Word文档格式.docx》由会员分享,可在线阅读,更多相关《QT4编程指导Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

QT4编程指导Word文档格式.docx

cd/home/sprife/qt4/for_arm

tarxjvftslib-1.4.tar.bz2

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

2、编译QT/E库

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

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

makeinstall

-prefix选项要特殊注意,该指定目录必须要与实际NFS目录对应否则字体处会出现错误

3、测试触摸屏及QT/E程序

1、建立NFS共享目录/arm2410cl

cd/

mkdirarm2410cl

cdarm2410cl

mkdirTrolltech

cdTrolltech

mkdirqt-embedded-4.4.0

cdqt-embedded-4.4.0

cp/home/sprife/qt4/for_arm/qt-embedded-linux-opensource-src-4.4.0/lib/./-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-onolock,rsize=4096,wsize=4096192.168.1.111:

/arm2410cl/mnt/nfs

3、设置环境变量

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

exportQTDIR=$PWD

exportLD_LIBRARY_PATH=$PWD/lib

exportTSLIB_TSDEVICE=/dev/event0

exportTSLIB_PLUGINDIR=$PWD/lib/ts

exportTSLIB_CONSOLEDEVICE=none

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

exportLANG=zh_CN

4、执行触摸屏校准程序(在qt-embedded-4.4.0下)

./bin/ts_calibrate

如果出现如下错误提示:

Couldntloadmodulepthres

Norawmodulesloaded.

ts_config:

Success

则更改ts.conf配置文件选择一个输入设备

vi/mnt/nfs/Trolltech/qt-embedded-4.4.0/etc/ts.conf

#Uncommentifyouwishtousethelinuxinputlayereventinterface

#module_rawinput

更改为

module_rawinput

若提示:

/dev/touchscreen/ucb1x00:

Nosuchfileordirectory

则一般是环境变量没设置好的问题,可以重新仔细检查环境变量的设置

再次执行触摸屏校准程序即可,程序会自动存储坐标校准信息以便应用程序使用。

此时如无错误则进入5点触摸屏校准程序并存储配置文件

还可以进行其他触摸屏测试程序ts_test、ts_print等

5、执行QT/E带触摸屏的例子程序

在宿主机端拷贝编译好的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

如出现如下错误:

errorwhileloadingsharedlibraries:

libz.so.1:

cannotopensharedobjectfile:

Nosuchfileordirectory

则在宿主机端交叉编译器目录下搜索该库文件,拷贝到lib目录下(具体库文件位置可能不尽相同)

cp/opt/host/armv4l/armv4l-unknown-linux/lib/libz.so.1/arm2410cl/Trolltech/qt-embedded-4.4.0/lib/

若出现错误

libstdc++.so.6:

cannotopensharedobjectfile:

拷贝

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/

libgcc_s.so.1:

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/lib/

如果想让QT/E在ARM端支持USB鼠标,可以在ARM端配置环境变量

2410核心板:

exportQWS_MOUSE_PROTO=MouseMan:

/dev/input/mouse0

270核心板:

exportQWS_MOUSE_PROTO="

TPanel:

/dev/touchpanelMouseMan:

/dev/mice"

即可。

三、编写QT-X11程序

进入QTforX11目录中进行设计

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

建立实验目录

[root@vm-devfor_pc]#mkdirtestqt-x11

[root@vm-devfor_pc]#cdtestqt-x11/

[root@vm-devtestqt-x11]#

使用designer编辑程序控件

[root@vm-devtestqt-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->

closed

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

[root@vm-devtestqt-x11]#/home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/designer

[root@vm-devtestqt-x11]#ls

testx11.ui

编辑main.cpp函数

[root@vm-devtestqt-x11]#vimain.cpp

#include"

ui_testx11.h"

intmain(intargc,char*argv[])

{

QApplicationapp(argc,argv);

QWidget*widget=newQWidget;

Ui:

:

Formui;

ui.setupUi(widget);

widget->

show();

returnapp.exec();

}

main.cpptestx11.ui

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

[root@vm-devtestqt-x11]#/home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake-project

testqt-x11.protestx11.uimain.cpp

编译生成Makefile文件

[root@vm-devtestqt-x11]#/home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake

Makefiletestqt-x11.protestx11.uimain.cpp

编译生成可执行文件

[root@vm-devtestqt-x11]#make

/usr/local/Trolltech/Qt-x11-4.4.0/bin/uictestx11.ui-oui_testx11.h

g++-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/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.-omain.omain.cpp

g++-Wl,-rpath,/usr/local/Trolltech/Qt-x11-4.4.0/lib-otestqt-x11main.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-lgthread-2.0-lglib-2.0-lrt-ldl-lpthread

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

程序编译成功了

执行编译好的程序测试下观察效果

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

QT编程扩展

编写自定义的信号与槽

将上个实验的目录复制出另一份并改名为testmyqt-x11

[root@vm-devfor_pc]#cd/home/sprife/qt4/for_pc/

[root@vm-devfor_pc]#cptestqt-x11testmyqt-x11–arf

[root@vm-devfor_pc]#cdtestmyqt-x11/

[root@vm-devtestmyqt-x11]#

编辑自己定义槽函数的头文件myqt.h

包含ui_testx11.h头文件,继承其控件类,定义自定义函数文件处理函数MyDlg(),并添加自定义函数槽ShowInfo()即可。

[root@vm-devtestmyqt-x11]#vimyqt.h

#ifndef__DLG_H__

#define__DLG_H__

#include<

QDialog>

ui_testx11.h>

classMyDlg:

publicQDialog

{

Q_OBJECT

public:

MyDlg();

publicslots:

voidShowInfo();

private:

};

#endif

编辑myqt.cpp文件进行函数功能实现

其中ShowInfo()函数槽中定义改变textEdit的内容为“WelcometoUP-TECH”

[root@vm-devtestmyqt-x11]#vimyqt.cpp

#include"

myqt.h"

MyDlg:

MyDlg()

ui.setupUi(this);

QObject:

connect(ui.pushButton,SIGNAL(clicked()),this,SLOT(ShowInfo()));

connect(ui.pushButton_2,SIGNAL(clicked()),this,SLOT(close()));

}

voidMyDlg:

ShowInfo()

ui.textEdit->

setHtml(QApplication:

translate("

Form"

"

<

!

DOCTYPEHTMLPUBLIC\"

-//W3C//DTDHTML4.0//EN\"

\"

http:

//www.w3.org/TR/REC-html40/strict.dtd\"

>

\n"

"

html>

head>

metaname=\"

qrichtext\"

content=\"

1\"

/>

styletype=\"

text/css\"

p,li{white-space:

pre-wrap;

}\n"

/style>

/head>

bodystyle=\"

font-family:

'

SansSerif'

;

font-size:

10pt;

font-weight:

400;

font-style:

normal;

\"

palign=\"

center\"

style=\"

margin-top:

0px;

margin-bottom:

margin-left:

margin-right:

-qt-block-indent:

0;

text-indent:

spanstyle=\"

12pt;

600;

color:

#55aaff;

WelcometoUP-TECH<

/span>

/p>

/body>

/html>

0,QApplication:

UnicodeUTF8));

重新编辑main.cpp函数

包含自定义头文件并使用自定义的类对象进行QT实现

[root@vm-devtestmyqt-x11]#vimain.cpp

QApplication>

intmain(intargc,char**argv)

MyDlg*mydlg=newMyDlg;

returnmydlg->

exec();

查看当前目录文件

[root@vm-devtestmyqt-x11]#ls

main.cppmyqt.cppmyqt.htestx11.ui

编译程序:

[root@vm-devtestmyqt-x11]#/home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake-project

[root@vm-devtestmyqt-x11]#/home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake

[root@vm-devtestmyqt-x11]#make

g++-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/QtGui-I/u

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

当前位置:首页 > 经管营销 > 人力资源管理

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

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