分类: LINUX
2013-02-19 14:24:46
1.打开qt2/bin里面的designer
# cd /home/my/qtopia2.2.0/arm-qtopia2.2.0/qtopia-free-2.2.0/qt2/bin/
# ./designer
打开后如果发现窗口都是透明的看不清楚内容,这是ubuntu开启了透明效果,
可以# XLIB_SKIP_ARGB_VISUALS=1 ./designer,但关闭shell后重新打开又会这样。
也可以在登陆时选择ubuntu 2D,
或者编辑/etc/profie,加入export XLIB_SKIP_ARGB_VISUALS=1注销后重新登陆,这时ubuntu也关闭了透明效果。
打开designer后选择file-->new-->widget新建一个窗体
Property Editor里面设置:
name --> TMainFormBase
maximumSize --> 240,200
caption --> My Helloworld
选择在窗体上放一个TextLabel,然后双击这个TextLabel,修改其内容为Hello,World!
选择在窗体上放一个Push Button,然后双击这个Push Button,修改其内容为Quit
为Button控件添加事件处理:Edit-->Slots-->Slot Properties输入closeButtonClicked()
选择然后按住Button按键拖到窗体内任意空白地方,放开后弹出设置界面
signals选择clicked();slots选择closeButtonClicked();这时下方的Connections里面就有相应的内容了。
保存:File-->Save,第一步界面设置就完成了。
2.编写代码
我们需要创建3个文件:main.cpp main_form.h main_form.cpp,内容如下:
main.cpp
#include "main_form.h" #includemain_form.cppQTOPIA_ADD_APPLICATION("helloworld",TMainForm) QTOPIA_MAIN
#include "main_form.h" #includemain_form.hvoid TMainForm::closeButtonClicked() { close(); }
#if !defined (__MAIN_FORM_H__) # define __MAIN_FORM_H__ #include "helloworld.h" #include我们还需要创建一个项目文件helloworld.pro,内容如下:class TMainForm: public TMainFormBase { Q_OBJECT public: TMainForm(QWidget * parent = 0, const char * name = 0, WFlags f = WType_TopLevel) : TMainFormBase(parent,name,f) {} virtual ~TMainForm() {} public slots: void closeButtonClicked(); }; #endif
CONFIG += qtopiaapp
CONFIG -= buildQuicklaunch
HEADERS = main_form.h
SOURCES = main_form.cpp main.cpp
INTERFACES = helloworld.ui
TARGET = helloworld
3.编译程序
新建一个buildarm.sh
#!/bin/sh source /home/my/qtopia2.2.0/arm-qtopia2.2.0/qtopia-free-2.2.0/setQpeEnv qmake -spec qws/linux-arm-g++ -o Makefile.target *.pro make -f Makefile.target clean make -f Makefile.target运行buildarm.sh
#./buildarm.sh
这时如果出现source : not found的错误,这时因为ubuntu默认的shell是dash,所以我们要改成bash
把buildarm.sh开头“#!/bin/sh”改为"#!/bin/bash"
编译即可在目录下生成一个helloworld的可执行文件
4.在开发板运行helloworld程序
把上面生成的helloworld可执行文件复制到开发板根文件系统目录opt/Qtopia/bin里面
然后我们复制运行Qtopia的脚本,改为运行helloworld:在开发板根文件系统目录bin/里面原来用于启动Qtopia
的脚本,我们复制为helloworld,修改其中exec $QPEDIR/bin/qpe 把qpe改为helloworld即可
开发板NFS启动系统后运行helloworld脚本:
[root@STANzxd /]# helloworld &
可以看到LCD屏幕上出现了我们的helloworld程序,点击Quit按钮则关闭程序。