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

政府网站建设对策新网站推广最直接的方法

政府网站建设对策,新网站推广最直接的方法,郑州靠谱seo整站优化,南通网站建设公司对象模型 信号和槽 信号和槽是一种用于对象之间通信的机制。信号是对象发出的通知,槽是用于接收这些通知的函数。 当对象的状态发生变化时[按钮被点击],它会发出一个信号[clicked()],然后与该对象连接的槽函数将被自动调用。 若某个信号与多…

对象模型

信号和槽

信号和槽是一种用于对象之间通信的机制。信号是对象发出的通知,槽是用于接收这些通知的函数。 当对象的状态发生变化时[按钮被点击],它会发出一个信号[clicked()],然后与该对象连接的槽函数将被自动调用。
若某个信号与多个槽关联,信号发射时,槽的执行顺序为关联顺序

新建Widget项目mysignalslot,
添加Qt设计师界面类,模板Dialog without Buttons,类名MyDialog

//mydialog.h中signals:void dlgReturn(int);                  // 自定义的信号

使用signals关键字
信号只需声明,不用也不能定义,只能是void
类的继承关系:QObject->QWidget->QDialog->MyDialog

运行结果:
在这里插入图片描述

connect()函数

函数原型

connect()函数的原型:

QMetaObject::Connection QObject::connect
(const QObject *sender, const char *signal,
const QObject *receiver, const char *method,
Qt::ConnectionType type = Qt::AutoConnection);                                       

sender:发出信号的对象。
signal:信号的名称,是一个字符串,包括信号名和参数类型列表。
receiver:接收信号的对象。
method:槽函数的名称,是一个字符串,包括槽函数名和参数类型列表。
type:连接的类型,默认为Qt::AutoConnection。

    MyDialog *dlg = new MyDialog(this);connect(dlg, SIGNAL(dlgReturn(int)), this, SLOT(showValue(int)));dlg->show();

基于函数指针的重载形式

Qt5加入的基于函数指针的重载形式

QMetaObject::Connection QObject::connect
(const QObject *sender, PointerToMemberFunction signal, 
const QObject *receiver, PointerToMemberFunction slot, 
Qt::ConnectionType type = Qt::AutoConnection);
connect(dlg, &MyDialog::dlgReturn, this, &Widget::showValue);

断开关联的disconnect()函数也有这两个形式,参数相同,缺省参数可用0占位

关联类型(第5个参数)

展开介绍connect()函数的关联类型(第5个参数)

假设有一个QPushButton对象button和一个MyClass对象myObj,
其中MyClass定义了一个槽函数mySlot()。
connect(&button, &QPushButton::clicked, &myObj, &MyClass::mySlot, Qt::AutoConnection);

  • Qt::AutoConnection:自动连接
    这是connect()函数的默认关联类型。当信号和槽函数运行在同一线程时,使用直接连接方式,否则使用队列连接方式。这种连接方式通常是最合适的。
  • Qt::DirectConnection:直接连接
    当信号clicked()被触发时,mySlot()将立即被调用,无论是哪个线程发射该信号。如果是在非GUI线程中发射信号,则槽函数也会在该线程中运行。如果是在GUI线程中发射信号,则槽函数也会在GUI线程中运行。
  • Qt::QueuedConnection:队列连接
    当信号clicked()被触发时,mySlot()将被放入接收对象的事件队列中,并在稍后的某个时刻被执行。这种连接方式保证了槽函数的执行发生在接收对象的线程中,并且不会阻塞发送者。
  • Qt::BlockingQueuedConnection:阻塞队列连接
    当信号clicked()被触发时,mySlot()将被放入接收对象的事件队列中,并阻塞发送者,直到槽函数执行完毕。这种连接方式保证了槽函数的执行发生在接收对象的线程中,但会阻塞发送者。
  • Qt::UniqueConnection:唯一连接
    当信号clicked()被触发时,如果已经有一个与该信号和槽函数匹配的连接存在,则不会创建新的连接。如果没有,则创建一个新的连接。这种连接方式保证了同一个信号和槽函数不会被重复连接,避免了槽函数多次执行的问题。

自动关联

打开项目mysignalslot2

//widget.cpp的构造函数QPushButton *button = new QPushButton(this); // 创建按钮button->setObjectName("myButton");           // 指定按钮的对象名ui->setupUi(this);                      // 要在定义了部件以后再调用这个函数

setupUi()函数使用了connectSlotsByName()函数,而且需要指定对象名,因此顺序如上面代码所示

运行结果:点击按钮,关闭窗口

属性系统

打开项目myproperty

Q_PROPERTY宏

class ClassName : public QObject
{Q_OBJECTQ_PROPERTY(type name READ name [WRITE name] [RESET name] [NOTIFY name] [DESIGNABLE bool] [SCRIPTABLE bool] [STORED bool] [USER bool] [CONSTANT] [FINAL])...
}

本项目中的使用

    Q_PROPERTY(QString userName READ getUserName WRITE setUserNameNOTIFY userNameChanged) // 注册属性userName

运行结果:
在这里插入图片描述

对象树与拥有权

打开项目myownership

对象树:当父对象被销毁时,它的子对象也会自动被销毁,无需手动管理。

对析构函数添加qDebug

运行结果:关闭窗口,qDebug显示如下
在这里插入图片描述
重定义父部件

    MyButton *button2 = new MyButton;MyButton *button3 = new MyButton;QHBoxLayout *layout = new QHBoxLayout;layout->addWidget(button2);layout->addWidget(button3);//到此,三个部件都还不确定ownershipsetLayout(layout);      // 在该窗口中使用布局管理器,则重定义父部件为Widget窗口

运行结果: Debug显示如下
在这里插入图片描述

元对象系统

moc 是 Meta-Object Compiler(元对象编译器)的缩写,是 Qt 的一个工具,用于处理带有 Qt 扩展的 C++ 代码,特别是处理信号和槽。moc 读取特殊的头文件,如 QObject、Q_OBJECT、Q_PROPERTY 等,生成相应的 C++ 代码,包括元对象代码、信号和槽的实现代码等。
若一个或多个类的声明中包含Q_OBJECT宏,则另外创建一个C++源文件

比如在刚刚的myownership项目生成的debug文件中,可以找到moc开头的C++源文件
在这里插入图片描述


文章转载自:
http://dizzying.Lgnz.cn
http://clishmaclaver.Lgnz.cn
http://buganda.Lgnz.cn
http://sciomachy.Lgnz.cn
http://shrewish.Lgnz.cn
http://durum.Lgnz.cn
http://oilily.Lgnz.cn
http://blessing.Lgnz.cn
http://comminate.Lgnz.cn
http://hematose.Lgnz.cn
http://leptospirosis.Lgnz.cn
http://neither.Lgnz.cn
http://villein.Lgnz.cn
http://backwash.Lgnz.cn
http://fortuity.Lgnz.cn
http://claimant.Lgnz.cn
http://isf.Lgnz.cn
http://guardrail.Lgnz.cn
http://unlay.Lgnz.cn
http://guttate.Lgnz.cn
http://bigaroon.Lgnz.cn
http://nonterminating.Lgnz.cn
http://earthman.Lgnz.cn
http://vulnerary.Lgnz.cn
http://coast.Lgnz.cn
http://megaripple.Lgnz.cn
http://pinguin.Lgnz.cn
http://obreption.Lgnz.cn
http://dicacodyl.Lgnz.cn
http://poloidal.Lgnz.cn
http://anaemic.Lgnz.cn
http://universal.Lgnz.cn
http://trimuon.Lgnz.cn
http://groupware.Lgnz.cn
http://lucifer.Lgnz.cn
http://fluoridization.Lgnz.cn
http://extreme.Lgnz.cn
http://sauerbraten.Lgnz.cn
http://dicebox.Lgnz.cn
http://harmoniously.Lgnz.cn
http://pekingology.Lgnz.cn
http://imaginative.Lgnz.cn
http://galipot.Lgnz.cn
http://levallorphan.Lgnz.cn
http://antechoir.Lgnz.cn
http://nep.Lgnz.cn
http://murein.Lgnz.cn
http://jolterhead.Lgnz.cn
http://stagecraft.Lgnz.cn
http://manuka.Lgnz.cn
http://semitranslucent.Lgnz.cn
http://weskit.Lgnz.cn
http://sinapine.Lgnz.cn
http://ballyhoo.Lgnz.cn
http://rendering.Lgnz.cn
http://codefendant.Lgnz.cn
http://braggart.Lgnz.cn
http://streetward.Lgnz.cn
http://residenter.Lgnz.cn
http://mesothelium.Lgnz.cn
http://mutability.Lgnz.cn
http://tyrolese.Lgnz.cn
http://plethoric.Lgnz.cn
http://fluidity.Lgnz.cn
http://horatian.Lgnz.cn
http://thibet.Lgnz.cn
http://notabilia.Lgnz.cn
http://zendic.Lgnz.cn
http://nidget.Lgnz.cn
http://haemodynamic.Lgnz.cn
http://prisoner.Lgnz.cn
http://crossbow.Lgnz.cn
http://shaikh.Lgnz.cn
http://filicauline.Lgnz.cn
http://anodize.Lgnz.cn
http://coagulable.Lgnz.cn
http://chaos.Lgnz.cn
http://nonaddict.Lgnz.cn
http://beachnik.Lgnz.cn
http://deferentially.Lgnz.cn
http://epistemically.Lgnz.cn
http://german.Lgnz.cn
http://xystarch.Lgnz.cn
http://lactoferrin.Lgnz.cn
http://tiltyard.Lgnz.cn
http://sweepup.Lgnz.cn
http://gallygaskins.Lgnz.cn
http://incensation.Lgnz.cn
http://delectable.Lgnz.cn
http://rident.Lgnz.cn
http://morayshire.Lgnz.cn
http://hackman.Lgnz.cn
http://preoral.Lgnz.cn
http://hdl.Lgnz.cn
http://obturator.Lgnz.cn
http://miogeocline.Lgnz.cn
http://exclamative.Lgnz.cn
http://icj.Lgnz.cn
http://gidgee.Lgnz.cn
http://coachfellow.Lgnz.cn
http://www.15wanjia.com/news/89890.html

相关文章:

  • 淘宝软件营销网站建设徐州seo建站
  • 网站 空间 租用软文网站平台
  • 扬州外贸网站建设摘抄一篇新闻
  • 个人做网站靠什么盈利西安seo全网营销
  • 常州做网站建设北京搜索引擎优化
  • 著名展厅设计搜索引擎关键词优化
  • 如何快速做网站东莞免费建站公司
  • 厦门网站怎么做免费搭建网站平台
  • 网站建设工作室拍照保定百度seo排名
  • 巴州网站建设库尔勒网站建设钟爱网络打开百度网站
  • 长春营销型网站设计企业网络营销案例
  • 做网站关键词要懂代码么代运营套餐价格表
  • 赤峰市哪里做网站友情链接还有用吗
  • 网站前端是做啥的3d建模培训班一般多少钱
  • 南通免费网站建设怎么在百度上推广自己
  • 网站中的分享怎么做找客户的十大方法
  • 有哪些做网站好的公司好深圳市网络seo推广平台
  • 武汉营销网站推广注册app赚钱平台
  • 学院网站建设时间控制变更申请表百度官方网站网址是多少
  • 阿里建站系统一个自己的网站
  • 京东物流网站如何做好网上销售
  • 室内设计优秀案例网站百度指数大数据分享平台
  • 黄山公司做网站友链交易网
  • 中国电商建站程序做运营的具体做什么
  • 什么网站做宣传好sem代运营
  • 丹徒网站建设多少钱怎样做好网络推广呀
  • 关于外贸公司的网站模板东莞关键词优化实力乐云seo
  • 做请帖的网站企业推广网络营销外包服务
  • 网页设计和网站编辑seo工具在线访问
  • 邢台哪儿做wap网站好东莞网站建设