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

乐清手机网站优化推广wordpress 表格小工具

乐清手机网站优化推广,wordpress 表格小工具,东莞室内设计公司,网站安全建设经费保障QObject 属性定义 自定义属性我用到的较少#xff0c;只在自定义键盘时用到了。 属性的行为类似于类数据成员#xff0c;但它们具有可通过元对象系统访问的附加特性 Q_PROPERTY关键字 定义语法#xff1a; Q_PROPERTY(type name (READ getFunction [WRITE setFunction] |…QObject 属性定义 自定义属性我用到的较少只在自定义键盘时用到了。 属性的行为类似于类数据成员但它们具有可通过元对象系统访问的附加特性 Q_PROPERTY关键字 定义语法 Q_PROPERTY(type name (READ getFunction [WRITE setFunction] | MEMBER memberName [(READ getFunction | WRITE setFunction)]) [RESET resetFunction] [NOTIFY notifySignal] [REVISION int] [DESIGNABLE bool] [SCRIPTABLE bool] [STORED bool] [USER bool] [CONSTANT] [FINAL] [REQUIRED]) #define Q_PROPERTY(...) QT_ANNOTATE_CLASS(qt_property, __VA_ARGS__)class A:public QObject {Q_OBJECT public:Q_PROPERTY(QColor color MEMBER m_color NOTIFY colorChanged)Q_PROPERTY(qreal spacing MEMBER m_spacing NOTIFY spacingChanged)Q_PROPERTY(QString text MEMBER m_text NOTIFY textChanged) signals:void colorChanged();void spacingChanged();void textChanged(const QString newText);private:QColor m_color;qreal m_spacing;QString m_text; }bool setProperty(const char *name, const QVariant value) 如果属性是Q_PROPERTY定义的设置属性值成功返回true否则返回false 如果属性不是Q_PROPERTY定义的则动态的新增属性并且返回false bool QObject::setProperty(const char *name, const QVariant value) {Q_D(QObject);const QMetaObject* meta metaObject();//获取元对象if (!name || !meta)return false;int id meta-indexOfProperty(name);//元对象中查找静态属性if (id 0) {if (!d-extraData)d-extraData new QObjectPrivate::ExtraData;const int idx d-extraData-propertyNames.indexOf(name);//静态属性没找到在动态设置的属性里面找if (!value.isValid()) {if (idx -1)return false;d-extraData-propertyNames.removeAt(idx);d-extraData-propertyValues.removeAt(idx);} else {if (idx -1) { //动态设置的属性里面也没有找到d-extraData-propertyNames.append(name);//新增属性d-extraData-propertyValues.append(value);//新增属性值} else {//动态设置的属性里面找到了if (value.userType() d-extraData-propertyValues.at(idx).userType() value d-extraData-propertyValues.at(idx))return false;d-extraData-propertyValues[idx] value;//修改属性值}}QDynamicPropertyChangeEvent ev(name);QCoreApplication::sendEvent(this, ev);//发送QDynamicPropertyChangeEvent事件return false;//新增动态属性始终返回false}//静态属性直接修改其值QMetaProperty p meta-property(id);return p.write(this, value); } QList dynamicPropertyNames() const 返回所有使用setProperty动态新增的属性名称列表 int senderSignalIndex() 返回调用当前执行槽的信号的元方法索引它是sender()返回的类的成员。 应该在槽函数中调用如果在由信号激活的槽之外调用则返回-1。 对于带有默认参数的信号此函数将始终返回带有所有参数的索引而不管connect()使用了哪个参数。 例如被销毁的信号(QObject *obj nullptr)将有两个不同的索引(带参数和不带参数)但这个函数将始终返回带参数的索引。 这不适用于重载具有不同参数的信号。 警告:这个函数违反了面向对象的模块化原则。但是当许多信号连接到单个槽时访问信号索引可能很有用。 警告:当通过Qt::DirectConnection从不同于此对象线程的线程调用槽时此函数的返回值无效。不要在这种场景中使用此函数。 这个函数是在Qt 4.8中引入的。 int receivers(const char* signal) const 返回连接到该信号的接收器的数量。 由于插槽和信号都可以用作信号的接收器并且可以多次进行相同的连接因此接收器的数量与从该信号进行连接的数量相同。 if (receivers(SIGNAL(valueChanged(QByteArray))) 0) { QByteArray data; get_the_value(data); // expensive operation emit valueChanged(data); } bool inherits(const char *classname) 返回是否直接或间接继承了className类是则返回true;否则返回false。 一个类被认为继承了它自己。 QTimer *timer new QTimer; // QTimer inherits QObject timer-inherits(“QTimer”); // returns true timer-inherits(“QObject”); // returns true timer-inherits(“QAbstractButton”); // returns false // QVBoxLayoutpublic QObject ,public QLayoutItem{}; QVBoxLayout *layout new QVBoxLayout; layout-inherits(“QObject”); // returns true layout-inherits(“QLayoutItem”); // returns true (even though QLayoutItem is not a QObject) bool isSignalConnected(const QMetaMethod signal) 如果信号连接到至少一个接收器则返回true否则返回false Signal必须是该对象的信号成员否则行为未定义。 static const QMetaMethod valueChangedSignal QMetaMethod::fromSignal(MyObject::valueChanged); if (isSignalConnected(valueChangedSignal)) { QByteArray data; data get_the_value(); // expensive operation emit valueChanged(data); } void deleteLater() 计划删除此对象,当控制返回到事件循环时对象将被删除 如果在调用此函数时事件循环没有运行(例如在QCoreApplication::exec()之前在对象上调用deleteLater())则一旦事件循环启动该对象将被删除。 如果在主事件循环停止后调用deleteLater()则不会删除对象。 自Qt 4.8以来如果deleteLater()在没有运行事件循环的线程中的对象上调用则该对象将在线程结束时被销毁。 注意进入和离开一个新的事件循环(例如通过打开一个模态对话框)不会执行延迟删除;对于要删除的对象控件必须返回到从中调用deleteLater()的事件循环。 注意:多次调用这个函数是安全的;当交付第一个延迟删除事件时对象的任何挂起事件都将从事件队列中删除。 void QObject::deleteLater() {QCoreApplication::postEvent(this, new QDeferredDeleteEvent()); }bool QObject::event(QEvent *e) {case QEvent::DeferredDelete:qDeleteInEventHandler(this);break; }void qDeleteInEventHandler(QObject *o) {delete o; } static uint registerUserData() 注册用户数据类型返回此类型id号 static QBasicAtomicIntegeruint user_data_registration Q_BASIC_ATOMIC_INITIALIZER(0);uint QObject::registerUserData() {return user_data_registration.fetchAndAddRelaxed(1); }void setUserData(uint id, QObjectUserData* data) 设置对应id的用户数据类型的数据数据必须是指针且不需要自己手动释放 void QObject::setUserData(uint id, QObjectUserData* data) {Q_D(QObject);if (!d-extraData)d-extraData new QObjectPrivate::ExtraData;if (d-extraData-userData.size() (int) id)d-extraData-userData.resize((int) id 1);d-extraData-userData[id] data;//用户数据是一个数组里面保存不同类型的用户数据 }QObjectUserData* userData(uint id) const 获取用户数据 QObjectUserData* QObject::userData(uint id) const {Q_D(const QObject);if (!d-extraData)return nullptr;if ((int)id d-extraData-userData.size())return d-extraData-userData.at(id);return nullptr; }userData自动析构 对象析构时自动析构释放所有用户数据 QObjectPrivate::~QObjectPrivate() {if (extraData)qDeleteAll(extraData-userData);delete extraData; }template typename Container inline void qDeleteAll(const Container c) {qDeleteAll(c.begin(), c.end()); }void qDeleteAll(ForwardIterator begin, ForwardIterator end) {while (begin ! end) {delete *begin;//删除所有用户数据对于用户数据里面含有指针的类型有数据本身析构释放begin;} } ainer c) {qDeleteAll(c.begin(), c.end()); }void qDeleteAll(ForwardIterator begin, ForwardIterator end) {while (begin ! end) {delete *begin;//删除所有用户数据对于用户数据里面含有指针的类型有数据本身析构释放begin;} }
http://www.pierceye.com/news/284903/

相关文章:

  • 做企业网站有前途吗网站的栏目设置
  • 免费购物网站专门教人做点心的网站
  • 佛山网站设计哪里好seo关于网站搜索排名关键词的标准评定
  • 化工行业网站模板网站上怎么做动画广告视频
  • 怎么查百度收录网站吗用旧技术做网站能过毕设么知乎
  • 容桂医疗网站建设怎样在网站做咨询医生挣钱
  • 响应式网站建设价格加盟网络营销推广公司
  • 营销型网站单页面360任意看地图网站
  • 易班班级网站建设展示PPTwordpress php 采集器
  • 网站的透明图片怎么做嘉兴网站托管
  • 宝安做棋牌网站建设哪家便宜wordpress 导出html5
  • 网页制作与网站建设的发展趋势设想wordpress必装插件
  • 网站模板下载百度云链接怎么做的学做粤菜的网站
  • 牛栏前网站建设整站优化推广品牌
  • 太原做网站找谁阳江公司做网站
  • 企业网站aspwordpress原生相册
  • 重庆网站建设哪家公司那家好企业宣传软文
  • 如何选择营销网站建设什么网站做优化最好?
  • 个人博客网站模板素材网站的运营方案
  • wordpress增加网站网页关键词jquery验证网站地址
  • 企业招聘网站模板网站页面设计需要遵循的六大原则
  • 网站界面设计说明关键词排名顾问
  • 滨江区网站开发公司贵阳住房和城乡建设局网站
  • 如何建设小网站邢台市天气预报15天
  • 网站收录量低怎么做舟山公司网站制作
  • 部队网站模板计算机网站建设员
  • 对象储存做网站微博内网站怎么做的
  • 运城做网站要多少钱谷歌网站英文
  • 校园网站建设的意见与建议做儿童交互网站
  • 7黄页网站建设网站建设培训会讲话