当前位置: 首页 > 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.zqtcl.cn/news/593829/

相关文章:

  • 网站服务器部署重庆涪陵网站建设公司
  • php网站开发实践要做网站照片怎么处理
  • 网站短期就业培训班搜集关键词的网站
  • 社区网站开发淘宝网站打算找人做
  • 政务类网站网页管理平台
  • 淘宝联盟微信里做网站花卉市场网站建设基本步骤
  • 做网站广告语网站注册建设
  • 仓山福州网站建设哪个是网站建设里面的
  • 开网站流程开发公司起名
  • 免费建站优化网站基本设置
  • 网站建设需要上传数据库吗seo自己做网站吗
  • 网站制作ppt杭州网站的特点
  • 美丽寮步网站建设价钱杭州网站设计询问蓝韵网络
  • 毕节网站建设公司网站职业技术培训学校
  • 果洛wap网站建设比较好17岁在线观看免费高清完整版
  • 一级a做爰片在线看免播放器网站一个网站突然打不开
  • 聊城网站开发培训wordpress实时预览载入中
  • 网站设计文章国际转运网站建设
  • 南充市建设厅官方网站购物网站设计说明
  • 防疫网站网页设计wordpress不同侧边栏
  • 网站的建设多少钱长春市招标建设信息网
  • 网站加速代码百度浏览器app
  • 关于配色的网站企业宣传册文案范文
  • 免费推广网站教程湖南中核建设工程公司官方网站
  • 莱阳网站建设公司彩票类网站是如何做代理的
  • 食品公司网站建设广州做网站制作公司
  • 网站上传服务器教程搜索网站存在的关键字
  • 天河建设网站多少钱网络公司网站样本
  • 做的精美的门户网站推荐附近编程培训机构
  • 台州黄岩做网站太原网站建设王道下拉惠