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

建湖做网站哪家好电商网站建设与运营方向

建湖做网站哪家好,电商网站建设与运营方向,免费源码资源站,一级直播Qt的元对象系统基于如下三件事情#xff1a; 1.类#xff1a;QObject#xff0c;为所有需要利用原对象系统的对象提供了一个基类。 2.宏#xff1a;Q_OBJECT#xff0c;通常可以声明在类的私有段中#xff0c;让该类可以使用元对象的特性#xff0c;比如动态属性#x…Qt的元对象系统基于如下三件事情   1.类QObject为所有需要利用原对象系统的对象提供了一个基类。 2.宏Q_OBJECT通常可以声明在类的私有段中让该类可以使用元对象的特性比如动态属性信号和槽。 3.编译器元对象编译器moc为每个QObject子对象自动生成必要的代码来实现元对象特性。 moc工具会读入C的源文件如果它发现了一个或者多个声明了Q_OBJECT宏的类它就创建另一个C源文件为每个类生成包含元对象实现的代码。这些编译生成的源文件通常都已经被包含到类的源文件中或者和类的实现同时被编译和链接。   除了为对象间的通信提供信号和槽signals and slots机制之外元对象的代码还提供下列特性 ·QObject::metaObject()返回与该类绑定的meta-object对象。 ·QMetaObject::className()可以在运行时以字符串的形式返回类的名字不需要C编译器原生的运行时类型信息RTTI的支持。 ·QObject::inherits()函数返回继承信息对象是否是QObject继承树上一个类的实例。 ·QObject::tr()和QObject::trUtf8()提供国际化支持将字符串翻译成指定的语言。 ·QObject::setProperty()和QObject::property()通过名字动态设置和获取对象属性。 ·QMetaObject::newInstance()构造该类的一个新实例。 除此之外你还可以用qobject_cast()动态转换QObject类的类型。qobject_cast()函数和标准C的dynamic_cast()功能类似只是其不需要RTTI的支持而且可以跨越动态连接库的边界。它尝试将它的参数cast成尖括号内的对象类型如果对象是正确的类型运行时决定则返回非零否则返回0说明对象类型不兼容。 当某一个Object emit一个signal的时候它就是一个sender,系统会记录下当前是谁emit出这个signal的所以你在对应的slot里就可以通过sender()得到当前是谁invoke了你的slot对应的是QObject-d-sender。    有可能多个Object的signal会连接到同一个signal(例如多个Button可能会connect到一个slot函数onClick()),因此这是就需要判断到底是哪个Object emit了这个signal根据sender的不同来进行不同的处理。这时就要用到qobject_cast()。   例如假设MyWidget继承自QWidget同时也声明了Q_OBJECT宏           QObject *obj new MyWidget; QObject类型的变量obj实际上指向一个MyWidget对象因此我们可以这样进行类型转换           QWidget *widget qobject_castQWidget *(obj); 到MyWidget的转型可以成功是因为qobject_cast()并没有对Qt内建对象和定制的扩展对象分别对待。           QLabel *label qobject_castQLabel *(obj);     // label is 0 另一方面到QLabel的转型则会失败指针会被设置为0。这样使得我们可以在运行时根据对象类型对不同类型的对象进行不同的处理    if (QLabel *label qobject_castQLabel *(obj)) {       label-setText(tr(Ping));   }  else  if (QPushButton *button qobject_castQPushButton *(obj)) {      button-setText(tr(Pong!));   } 尽管我们可以在不用Q_OBJECT宏和原对象信息的情况下仍旧使用QObject作为基类但是像信号和槽以及其他这里描述的特性将无法使用。从元对象系统的观点来看一个没有元对象代码的QObject子类和其最接近的有元对象代码的祖先是等同的。这也就意味着QMetaObject::className()将不会返回你的类的真实的名字而是该类某一个祖先的名字。 因此我们强烈建议所QObject的子类都是用Q_OBJECT宏不管你实际上是否使用信号和槽以及属性。   例子 connect(pushButton_2,SIGNAL(clicked()),this,SLOT(on_pushButton_clicked())); connect(pushButton,SIGNAL(clicked()),this,SLOT(on_pushButton_clicked())); void MainWindow::on_pushButton_clicked() {  QPushButton*ptqobject_cast QPushButton*(sender()); if(!pt) return;   QString str; if (pt pushButton)         str1; else  if (pt pushButton_2)          str2;   } 转载于:https://www.cnblogs.com/qq78292959/archive/2012/08/20/2648099.html
http://www.pierceye.com/news/593829/

相关文章:

  • 襄阳定制型网站开发昆明网站开发推广公司
  • 做视频怎样传到网站ip域名查询
  • 天台建设局网站恒一信息深圳网站建设公司2
  • 珠海网站怎样建设网页设计相关网站
  • 网站推广服务好公司排名山西网站建设免费
  • 金乡县网站建设曲靖建设局网站
  • 唐山制作网站的公司深圳市做网站知名公司
  • 深圳方维网站建设公司全面启动门户网站建设
  • 住房和城乡建设部网站证书查询企业推广产品有什么平台好
  • 建立企业网站的目的手机排行榜软件
  • 自己做网络棋牌网站流程wordpress 自定义数据库
  • 北京网站建设厂家个人养老保险
  • 办公室门户网站建设和管理工作360排名优化工具
  • 楚天网站建设合同蜘蛛云建网站怎样
  • 建设一个小说网站企业网站 数据库设计
  • 最简单的网站开发软件有哪些ui设计外包
  • 网站主页排版重庆装修公司排名前十名
  • 网站建设得花多钱设计网站的软件
  • 辽阳企业网站建设团队网络营销与直播电商课程
  • 枣庄网站建设电话临沂广润网站建设
  • 长春市制作网站费用郑州网站专业制作
  • 婚恋网站排名前十名淘宝客网站开发一个
  • 泰国网站的域名物流公司哪家便宜又好
  • 找工作的平台seo第三方点击软件
  • 青岛市建设监理协会网站网站开发工作量评估
  • 深圳网站设计与制作公司德州万企互联网站制作
  • 制作一个链接网站400电话网站模板
  • 网站建设网站网站建设网站濮阳网站建设网站
  • 追天网站建设 优帮云网页设计基础入门
  • 北京网站的建立的wordpress mofile