欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    14_QT编程.ppt

    • 资源ID:70007232       资源大小:743.50KB        全文页数:31页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    14_QT编程.ppt

    QT编程博创科技2008博创科技北北 京京 博博 创 兴 业 科科 技技 有有 限限 公公 司司BEIJNG UNIVERSAL PIONEERING TECHNOLOGY Co.,LTD博创科技 嵌入互动博创科技 嵌入互动2008博创科技Qt概述Qt是Trolltech公司的标志性产品,是一个跨平台的C+图形用户界面(GUI)工具包Qt应用程序接口与工具兼容于所有支持平台,让开发员们掌握一个应用程序接口,便可执行与平台非相关的应用开发与配置Qt/Windows(WindowsXP,2000,NT4,Me/98)Qt/Mac(MacOSX)Qt/X11(Linux,Solaris,HP-UX,IRIX,AIX等)Qt对不同平台的专门API进行了专门的封装(文件处理,网络等)博创科技 嵌入互动2008博创科技Qt特征引入一种用于无缝对象通讯的被称为信号和槽的非常强大的机制可查询和可设计的属性,强大的事件和事件过滤器,根据上下文进行国际化的字符串翻译,完善的时间间隔驱动的计时器使得在一个事件驱动的图形界面程序中很好地集成许多任务成为可能。以一种自然的方式组织对象所有权的分层次和可查询的对象树。被守护的指针,QGuardedPtr,当参考对象被破坏时,可以自动地设置为无效,不像正常的C+指针在它们的对象被破坏的时候变成了“摇摆指针”。博创科技 嵌入互动2008博创科技Qt编程核心技术编程核心技术1.QT对象模型u元对象系统u信号和插槽u属性2.QObject类u对象树u事件处理博创科技 嵌入互动2008博创科技元对象系统是一个C+扩展,使得QT更适合真正的组件GUI编程使用元编译器moc产生能被标准C+编译器访问的附加C+代码带有moc预编译器的C+基本上提供了面向对象的C的灵活性或类似于Java的运行环境,并保持了C+的执行效率和扩展性实现功能对象间通信的信号/插槽机制运行时的类型信息动态属性系统博创科技 嵌入互动2008博创科技信号和插槽在Qt程序中,利用信号(signal)和插槽(slot)机制进行对象间的通信事件处理的方式也是回调当对象状态发生改变的时候,发出signal通知所有的slot接收signal,尽管它并不知道哪些函数定义了slot,而slot也同样不知道要接收怎样的signalsignal和slot机制真正实现了封装的概念,slot除了接收signal之外和其它的成员函数没有什么不同,而且signal和slot之间也不是一一对应的。博创科技 嵌入互动2008博创科技Signal和Slot的声明(1/2)在Qt程序设计中,凡是包含signal和slot的类中都要加上Q_OBJECT的定义class Student:public QObject Q_OBJECT public:Student()myMark=0;int mark()const return myMark;public slots:void setMark(int newMark);signals:void markChanged(int newMark);private:int myMark;博创科技 嵌入互动2008博创科技Signal和Slot的声明(2/2)signal的发出一般在事件的处理函数中,利用emit发出signal,在下面的例子中在在事件处理结束后发出signalvoid Student:setMark(int newMark)if(newMark!=myMark)myMark=newMark;emit markChanged(myMark);博创科技 嵌入互动2008博创科技Signal和Slot的连接(1/2)在signal和slot声明以后,需要使用connect()函数将它们连接起来。connect()函数属于QObject类的成员函数,它能够连接signal和slot,也可以用来连接signal和signal,函数原形如下:bool QObject:connect(const QObject*sender,const char*signal,const QObject*receiver,const char*member )static 其中第一个和第三个参数分别指出signal和slot是属于那个对象或组件博创科技 嵌入互动2008博创科技Signal和Slot的连接(2/2)在使用connect()函数进行来接的时候,还需要用到SIGNAL()和SLOT()这两个宏,使用方法如下:QLabel*label=new QLabel;QScrollBar*scroll=new QScrollBar;QObject:connect(scroll,SIGNAL(valueChanged(int),label,SLOT(setNum(int);博创科技 嵌入互动2008博创科技Signal和Slot的连接方式博创科技 嵌入互动2008博创科技取消Signal和Slot连接取消一个连接disconnect(lcd,SIGNAL(overflow(),this,SLOT(handleMathError();取消一个连接不是很常用,因为Qt会在一个对象被删除后自动取消这个对象所包含的所有的连接博创科技 嵌入互动2008博创科技属性属性也是一个类的成员在类声明中用宏Q_PROPERTY来声明只能在继承于QObject的子类中声明设置和得到属性的成员函数如下:QObject:setProperty()QMetaObject:propertyNames()QMetaObject:property()博创科技 嵌入互动2008博创科技QObject类QObject是Qt类体系的唯一基类,是Qt各种功能的源头活水,就象MFC中的CObject和Dephi中的TObjectconnect():提供信号槽机制对象树:QObject在对象树中组织它们自己。当你以另外一个对象作为父对象来创建一个QObject时,它就被添加到父对象的children()列表中,并且当父对象被删除的时候,它也会被删除。这种机制很好的适合了图形用户界面应用对象的需要。事件:事件是由窗口系统或qt本身对各种事务的反应而产生的。当用户按下、释放一个键或鼠标按钮,一个键盘或鼠标事件被产生;当窗口第一次显示,一个绘图事件产生,从而告知最新的可见窗口需要重绘自身。大多数事件是由于响应用户的动作而产生的,但还有一些,比如定时器等,是由系统独立产生的。博创科技 嵌入互动2008博创科技事件运行机制QApplication:exec()QApplication:enter_loop()QApplication:processNextEvent()QApplication:sendPostedEvents();QWSDisplay:getEvent()QApplication:qwsProcessEvent()QWSServer:processEventQueue()事件循环博创科技 嵌入互动2008博创科技QApplicationQApplication和QWidget都是QObject类的子类QApplication类负责GUI应用程序的控制流和主要的设置,它包括主事件循环体,负责处理和调度所有来自窗口系统和其他资源的事件,并且处理应用程序的开始、结束以及会话管理,还包括系统和应用程序方面的设置。对于一个应用程序来说,建立此类的对象是必不可少的博创科技 嵌入互动2008博创科技QWidgetQWidget类是所有用户接口对象的基类,它继承了QObject类的属性。组件是用户界面的单元组成部分,它接收鼠标、键盘和其它从窗口系统来的事件,并把它自己绘制在盘屏幕上QWidget类有很多成员函数,但一般不直接使用,而是通过子类继承来使用其函数功能。如,QPushButton、QlistBox等都是它的子类博创科技 嵌入互动2008博创科技一个完整的Qt程序1#include 2#include 3 int main(int argc,char*argv)4 5 QApplication app(argc,argv);6 QLabel*label=new QLabel(Hello Qt!);7 label-show();8 return app.exec();9 博创科技 嵌入互动2008博创科技QtDesigner博创科技 嵌入互动2008博创科技QtDesigner直接使用代码来直接编写GUI无疑是非常痛苦的,好在QT提供了界面开发工具:QTdesignerQt应用程序除了使用手工编写代码的方式外,还可以用过QtDesinger来完成QtDesigner的功能十分强大,界面类似于VB,而且还提供了大量可供编程使用的组件博创科技 嵌入互动2008博创科技博创科技 嵌入互动2008博创科技基于QtDesigner程序设计(1/4)在使用QtDesigner程序开发时,一般要涉及到下面几个步骤:1.创建和初始化子部件2.设置子部件布局3.设置Tab键次序(不是必须)4.建立信号与插槽的连接5.编写事件处理函数博创科技 嵌入互动2008博创科技基于QtDesigner程序设计(2/4)1.创建并布置部件2.对部件使用布局管理3.建立信号与插槽的连接博创科技 嵌入互动2008博创科技基于QtDesigner程序设计(3/4)编辑两个部件之间信号与插槽之间的连接方式博创科技 嵌入互动2008博创科技基于QtDesigner程序设计(4/4)QtDesigner下不同风格的预览博创科技 嵌入互动2008博创科技QtDesigner的工作过程QtDesigner将工程文件组织成.ui的文件由.ui文件生成.h文件.ui-xmlUIC-oform.hform.ui需要注意的是,在QT3中使用例如UIC-oform.cpp-iform.hform.ui这样的方式来生成表单的CPP文件,但在QT4中,UIC已经作了修改,不能输出表单的CPP文件由C+编译器编译所有.h和.cpp文件博创科技 嵌入互动2008博创科技QtDesigner功能框图博创科技 嵌入互动2008博创科技Qt程序开发流程博创科技 嵌入互动2008博创科技Qt程序开发过程1.使用designeru设计界面,添加窗口组件u建立信号槽连接u编写事件处理函数u保存工程为.ui文件,得到一个主窗口类2.编写main.cpp文件进行主窗口类的实例化及显示3.设置编译所需的环境变量QTDIR=博创科技 嵌入互动2008博创科技Qt程序开发过程4.使用qmake生成.pro工程文件rootIntelqt4qmake-project5.通过qmake自动生成Makefile文件rootIntelqt4qmake6.make生成可执行文件7.运行2008博创科技北北 京京 博博 创 兴 业 科科 技技 有有 限限 公公 司司BEIJNG UNIVERSAL PIONEERING TECHNOLOGY Co.,LTD博创科技 嵌入互动谢谢各位技术支持电话:01082110740/1/2/3转822技术支持邮箱:supportup-技术支持论坛:http:/www.up-

    注意事项

    本文(14_QT编程.ppt)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开