网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
天线制作 GPS 地标
网站地图 RSS订阅
高级搜索 收藏本站
Home | 业界动态 | Open source | GNU | Linux | BSD | Solaris | AIX | HP-UX | IRIX | Mac OS X | Minix | Tru64 | SCO UNIX | Network | Security | X-Window | Database | 应用服务 | Programming | 经典著作 | 永远的纪念 | 杂项
 当前位置: Home > Linux > 嵌入式系统 > GUI > 文章  
基于Qt/Embedded和Qtopia的GUI设计
文章来源: http://www.mct.com.cn 文章作者: 王丽洁 习勇 魏急波 发布时间: 2007-03-02   字体: [ ]  
 

  创建按钮实现对应用程序的调用

  Qt部件与用户的交互方式不同于其他的GUI工具包,其他的GUI工具包使用回调函数创建用户交互,但是Qt提供了信号/槽(signal/slots)[5]通信机制描述对象间的无缝通讯。槽(slot)是标准的成员函数,它能够连接到信号,每当槽所连接的信号被发射时,槽(函数)就被执行。信号(signal)是一种特殊类型的函数,都是返回void型,它们被定义为当某个事件发生时就被发射,之后执行所有被连接的槽。当定义信号时必须使用QT的宏SIGNAL(),定义槽时必须使用宏SLOT()。

  通过调用QObject对象的connect函数可以将某个对象的信号与另一个对象的槽相关联,这样当发射对象发射信号时,接收对象的槽将被调用。该函数定义如下:

bool QObject::connect(const QObject *sender,const char *signal,const QObject *receiver, const char *member)

  与这个函数对应的disconnect函数,可以将信号和槽断开连接。

  本文使用了QT库提供的按钮clicked()信号,自定义了槽函数run()来实现对应用程序的调用,并且定义了槽函数mycall()调用已经使用了特定参数的run()函数。

  例如当一个按钮B1被点击时,它就发送“clicked”信号,通过connect()函数将信号与槽“mycall”连接起来,调用/opt/qt/examples/clock/下的应用程序“clock”的代码如下:

void MyMainWindow::mycall()
{
  MyMainWindow::run(“(cd /opt/qt/examples/clock; exec ./clock;)”);
}

connect(B1,SIGNAL(clicked()),this,SLOT(mycall()));

   图像背景的显示

  为了在Qt中装载和显示所支持的图像格式,需要创建一个QPixmap对象。QPixmap本质上是一个“屏幕外的部件(off-screen)”,图像可以先复制到一个QPixmap对象上,然后传送到QWidget。

  QWidget部件使用如下的成员函数来为窗口添加图像背景:

public Members
const QPixmap* backgroundPixmap () const
virtual void setBackgroundPixmap ( const QPixmap & )

  例如有一幅名为flower.png的图片,将其设为背景的代码如下:

QPixmap picture(“flower.png”)
SetbackgroundPixmap(picture)

  中文显示

  Qt的中文显示是Qt国际化的一部分,“国际化”简称为i18n,用来提供一个架构,让同样的代码可以适用于各种语种习惯和编码系统,程序设计人员只要利用这个架构的机制、准则编写应用程序,就可以在不新编译代码的情况下,支持各种语言。

  Qt支持Unicode—国际标准字符集,程序员可以在程序里自由的混用英语、汉语和其他Unicode所支持的语言。为Qt增加一种编码只需要增加该编码和Unicode的转化编码就可以了,Qt支持中文的GBK/Big5编码。

  Qt支持的字体常用的是ttf和qpf。qpf是Qt/Embedded专用的一种适合嵌入式应用的字体,它属于位图字体,不可以缩放,而ttf字体可以缩放。默认情况下Qt/Embedded在lib/fonts目录下提供了一种可以显示中文的字体库UniFont,但是该字体库中没有ttf的字体。为了使用ttf字体显示中文,本文采取如下的方法:拷贝一种支持unicode编码的ttf字体到lib/fonts目录下,例如,windows系统下的宋体simsun.ttf;同时还需要在此目录的fontdir脚本中添加下面一行:

simsun simsun.ttf FT n 50 0 su

 
推荐文章
·恰当选择嵌入式Linux环境下的GUI
·嵌入式Linux系统的MiniGUI研究和
·基于 GTK+ 和 X-window 的 GUI
·恰当选择嵌入式Linux环境下的GUI
·嵌入式Linux系统中的GUI系统的研
·QTE/Qtopia在Liod-270上的移植
·基于Qt/Embedded的GUI移植及应用
 

 
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
相关分类
热点文章
·基于Qt/Embedded的GUI移
·嵌入式Linux系统中的GUI
·QTE/Qtopia在Liod-270上
·Qt/Embedded在嵌入式Lin
·基于 GTK+ 和 X-window
·嵌入式Linux系统的MiniG
·恰当选择嵌入式Linux环
·恰当选择嵌入式Linux环
相关文章
·主流嵌入式Linux系统下G
·基于 GTK+ 和 X-window
·嵌入式uClinux的内核结
·制作基于软盘的Linux系
·基于Linux的移动电话开
·Linux下ARM/DSP双核系统
·嵌入式Linux系统的MiniG
·恰当选择嵌入式Linux环
更多...
 
 

Copyright(c) 2001-2009 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统