QT文档【DOC精选】.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
QT文档【DOC精选】

QT设计文档 QT4的移植及环境配置 本系统使用的是qtopia-core-opensource-src-4.2.2 版本,arm-linux-gcc-3.4.1版本编译器, 移植过程及配置过程已经在参赛文档的用户手册中讲述过,这里不再讲述. 界面功能 基于本系统,分析到用户的需求,此GUI设计了以下的功能: (1)身份验证机制:用户登录对话框,输入正确的用户名和密码,跳转到主控界面; (2)前台窗口显示家居信息及等级,对异常能采取报警(图片提示,发报警短信给用户); (3)用户可以手动设置温度报警的限值,可以手动控制家电的开与关; (4)用户在得到报警通知后,可以通过发短信采取措施来控制家电; (5)家居信息(时刻,状况,异常等)应在数据库中存放,方便用户查看当日的环境状况; (6) 用户可以进入后台数据库,进行更新操作; (7)可以进行一些设置(接受短信人的号码,串口设置)和显示时间日期,IP; 以下是本GUI系统的结构图: 图1系统的结构图 界面设计及使的相关技术及实现 QtDesigner的运用 本次设计中,使用 QtDesigner设计美化界面,十分方便,省去了写表示层代码的时间。 Singnal and Slots,QThread, QTimer的运用 A. Singnal and Slots的大量运用 在这个工程中,大量应用了信号槽机制,只要当主框架中的,操作函数就会被调用执行响应的操作clicked()与槽showDbManageForm()连接起来,实现进入家居信息界面 QObject::connect(DbManagePushButton,SIGNAL(clicked()),this,SLOT(showDbManageForm())); 将信号clicked()与槽com_set()连接起来,实现串口选择功能 QObject::connect(openpushButton,SIGNAL(clicked()),this,SLOT(com_set())); 将信号clicked()与槽temp_set()连接起来,实现温度报警值设置功能 QObject::connect(TempSpeedSpinBox,SIGNAL(()),this,SLOT(temp_set())); 将信号clicked()与槽power_on()连接起来,实现控制加电开启功能 QObject::connect(okpushButton1,SIGNAL(clicked()),this,SLOT(power_on())); B. QThread的运用 在嵌入GPRS的模块时,运用了QT线程机制,创建了一个线程,来监听短信的收。当要发短信时,挂起收线程,发送完毕后,又激活监听收短信线程 class gprsMsg : public QThread void gprsMsg :: run ( ) { int i = 0; while ( true ) { if ( flag == 1 ) { …… if( strcmp(buf,+CMTI: \SM\,) == 0) { …… } } } } C. QTimer的运用 为了从服务器及时获得最新的家居信息数据,便于及时更新,在设计中使用了Qt的定时器。每隔3秒去主动获取最新数据信息。如下: QTimer *timer=new QTimer(this); QObject::connect(timer,SIGNAL(timeout()),this,SLOT(getInfo())); timer-start(3000); 其中getInfo()为获取信息的槽函数。 Double Buffering技术 在本次设计中对一些组件进行了扩展与定制,如主控窗口图4中的温度计,QDial都是重新定制的,绘制过程中坐标转换,刷新等比较耗资源,再加上界面系统本身比较大,图片资源丰富,所以运用了双缓冲技术,以减轻画面的闪烁,使USB鼠标等在开发板上更流畅。 图2 组件qsynthKnob效果 在绘制上图过程中: 1.在构造函数中声明QPixmap pix; 2.在绘图事件中paintEvent ( QPaintEvent * e)中 QStylePainter pm(this); QRect ur=pPaintEvent-rect();//得到组件尺寸 pix=QPixmap(ur.size());//以此为参数创建一个位图变量 pix.fill(this,ur.topLeft());/

文档评论(0)

taotao0b + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档