在上一篇《把桌面qt代码编译运行到qpe上的一个例子》的main.cpp中的窗口布局控件不多,手写写代码也能凑合过去,但是如果要设计一个复杂的窗口界面就效率低下了。好在从qt 3版本后就引入了qt designer,窗口界面的布局可以用它来方便设计。下面以一个例子为例:
上一篇的配置不变,打开qt designer
#designer &
在designer内新建一个dialog,更改name属性为FormBase,然后画出需要的控件布局,在Edit菜单下有slot选项可新建槽函数,然后在工具面板上connect signal/slot工具按钮,在界面上连接发送信号和接收的两个控件。如此布局和信号连接好后就可以保存文件。假设保存成当前工程目录aaa下的formbase.ui。
创建一个form2.h里面声明一个类form2,public继承于FormBase,并且声明FormBase中的singal和slot函数,再创建form2.cpp实现这些函数。如:
form2.h文件
#include "formbase.h" //这个头文件和对应的formbase.cpp以后会在./.ui/release-shared/中由uic生成
#include
#include
class form2 : public FormBase
{
public:
form2(QWidget *parent=0, const char* name=0, WFlags fl=0);
virtual ~form2();
virtual void label_slot();//这个就是刚才在qt designer内创建的槽函数,它在父类中的声明见./.ui/release-shared/formbase.h
}
form2.cpp
form2::form2(QWidget *parent, const char *name, WFlags fl)
: FormBase(parent, name, fl)
{
}
form2::~form2()
{
}
void form2::label_slot()
{ //...实现槽的代码
}
创建一个main.cpp,作为窗口程序的入口:
main.cpp
#include
#include "form2.h"
QTOPIA_ADD_APPLICATION("aaa", form2) //第一个参数是下面生成.pro文件中加入的TARGET值一致的字符串,在qpe中运行时窗口的名称
QTOPIA_MAIN
现在工程目录中的文件有
form2.h form2.cpp frombase.ui main.cpp
#qmake -project 生成aaa.pro文件
修改里面的内容为
CONFIG +=qtopiaapp #加入这句,表示以后链接qte库而不是qt库
CONFIG -=buildQuicklaunch #加入这句,不以quicklaunch的方式编译,否则编译出来的是libxxx.so文件
HEADERS += form2.h
INTERFACES += formbase.ui
SOURCES += form2.cpp main.cpp
TARGET = aaa #加入这句,表示生成的执行文件名
#qmake -o Makefile -spec $QPEDIR/mkspecs/qws/linux-generic-g++ aaa.pro 生成Makefile
#make clean
#make
之后在qpe上运行的方法跟上一篇相同。
阅读(2616) | 评论(0) | 转发(0) |