当前位置: 首页 > news >正文

关键词查找工具seo教程seo入门讲解

关键词查找工具,seo教程seo入门讲解,黄页网站推广app咋做广告,十大下载网站免费安装文章目录一 、对象树是什么#xff1f;二、信号和槽的基本概念2.1 信号2.2 槽2.3 松散耦合2.4 特点三、示例总结一 、对象树是什么#xff1f; 对象树是由父类和若干子类对象组成#xff0c;而子类也可以由若干孙类。 QT中的对象树是以QObject为起始父类来完成树的构建的二、信号和槽的基本概念2.1 信号2.2 槽2.3 松散耦合2.4 特点三、示例总结一 、对象树是什么 对象树是由父类和若干子类对象组成而子类也可以由若干孙类。 QT中的对象树是以QObject为起始父类来完成树的构建的如下图所示。 当创建子类对象QObject 的时候会传递一个parent指针给子类的构造函数该指针就是父对象指针。 //QWidget 为myWidget的父类 myWidget::myWidget(QWidget *parent): QWidget(parent) { }class myWidget : public QWidget {Q_OBJECT //parent 父对象指针传递给子类的构造函数。 public:myWidget(QWidget *parent 0); };所以在创建 QObject 对象时会提供一个父对象的指针给构造函数QObject 对象就会自动添加到其父对象的 children() 列表。然后当父对象进行析构的时候这个子对象列表中的所有对象都会被析构当析构子对象的时候会自动从父对象的子对象列表中删除。 这种对象树机制的优点在于析构父类的析构时子类对象会自动销毁这样就不需要关注控件内存的销毁情况。 但也会存在特殊情况会造成QT程序内存泄漏问题这样就需要我们手动删除或者调用析构函数。 1parent指针不会区分child对象是new出来的还是从栈上分配的如果delete栈上的内存就会发生错误。避免这一情况的方法就是全部使用new来开辟空间。 2可以尝试采用智能指针QPointer模板类的方法来自动销毁内存空间。 3Qt的对象清理器QObjectCleanupHandler也可以自动删除所有监视对象。 二、信号和槽的基本概念 信号槽机制类似于C#中回调函数的概念我们知道回调函数的本质是函数作为参数在合适的时候条件成立时被某一特定的事件调用的方法而信号槽机制是如果触发事件对象就会发出信号给接收者然后调用绑定的槽函数其中相似之处在于这两种方式都会在满足某一条件时触发事件信号类似于条件达成的方法槽函数就像被委托调用的方法。 C#是通过委托来实现函数作为参数传递的信号槽机制则是通过连接的方式实现的信号和槽的绑定。 2.1 信号 信号signal也是由不同的方法组成的例如按钮的信号有9种分别继承自三个类QAbstractButton,QWidget,QObject 分别表示点击、按压、松开、开关等不同状态。 我们可以在自定义类里自定义信号 signals://自定义信号写到signals下//返回值是void,只需要声明不需要实现//可以有参数可以重载//emit hungry();来发送信号void hungry();void hungry(QString food);2.2 槽 槽slot的本质是类的成员函数其参数可以是任意类型的可以实现不同的功能如关闭隐藏下降上升等。例如QWidget类下槽函数包括 自定义槽 public slots://返回值是void,需要声明也需要实现//可以有参数也可以重载void eat();void eat(QString food);2.3 松散耦合 信号和槽是松散耦合的。 松散耦合是指槽可以与信号连接connect在一起只有连接的信号被激发的时候才能调用槽函数。 2.4 特点 1一个信号可以连接多个槽函数。多个信号也可以连接同一个槽函数。 2信号和槽函数参数必须一一对应。 三、示例 使用一个定时器的demo做一个简单的示例。 定义两个定时器实现显示数字的功能。 Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui-setupUi(this);//启动定时器,每隔1s启动一次id1 startTimer(1000);id2 startTimer(2000);//定时器的一种方式QTimer *timer new QTimer(this);timer-start(500);//超时信号和显示槽函数建立连接timer一超时便发送一个信号setText方法递增1connect(timer,QTimer::timeout,[](){static int num 1;ui-label_3-setText(QString::number(num));});//点击暂停按钮实现connect(ui-pushButton,QPushButton::clicked,[](){timer-stop();}); }另外一种方法需要定义定时器的事件用来显示数字。 void Widget::timerEvent(QTimerEvent *event) {//number()方法转stringif(event-timerId() id1){static int num 1;ui-label-setText(QString::number(num));}if(event-timerId() id2){static int num2 1;ui-label_2-setText(QString::number(num2));} }总结 对象树和信号槽机制使QT界面功能的搭建变得简易和灵活缺点在于由于需要遍历所有关联造成性能降低。
http://www.huolong8.cn/news/260420/

相关文章:

  • 网站设计公司简介企业网站开发环境
  • 一诺千金 网站建设广东广州网点快速网站建设
  • 网站建设的整体设计流程常用的网站开发工具
  • 福州做网站建设软件商店哪个好用
  • 网站数据库维护都是做什么南宁网站建设设计制作
  • 做英文网站明星百度指数排名
  • 贵阳网站建设钟鼎网络悬赏做logo的网站
  • 网站建设服务8vs2015 网站开发教程
  • a最先基智网站建设汝州市建设局网站
  • 做一个网站需要多少钱 怎么做虚拟主机app
  • 哪个网站做调查赚钱多个人导航网站如何赚钱
  • 南通做网站ntwsd买源码的网站
  • 套模板做网站教程兰州网站优化服务
  • 物流网站设计论文百度wap网站建设
  • 网站建设中服务器和空间区别深圳分销网站制作
  • 用来做微网站的如何在外管局网站做延期
  • 设计师做网站的流程wordpress 电话
  • wordpress新网站设计图片模板
  • 广州旅游团购网站建设收录是什么意思
  • 网站相册优化就业信息网页设计论文
  • 南阳做网站公司电话移动网页设计总结
  • 租车公司网站 模板用什么做网站的访问量统计
  • 母婴网站设计分析网站服务器租赁合同
  • 美容美发网站源码照片视频制作
  • 南磨房网站建设公司雅安建设网站
  • 在线免费做网站建设通网站会员共享密码
  • 河北省网站建设公司排名做婚礼logo免费的网站
  • 什么是门户网站建设平台国际销售网站有哪些
  • 做网站资讯运营著名咨询公司有哪些
  • wordpress 相册 不显示图片杭州专业网站优化公司