基于php旅游网站的毕业设计seo提升排名技巧
创建发送者与接收者
右键点击项目名选择添加新文件,之后选择添加C++ Class
之后再输入类命、选择基类后,一路下一步即可
添加信号与槽
添加信号
在发送者类的头文件中添加信号函数声明即可
class Sender : public QObject
{Q_OBJECT
public:explicit Sender(QObject *parent = nullptr);signals:void sendSignal();
};
添加槽
先在接收者类的头文件中添加槽函数声明
class Sendee : public QObject
{Q_OBJECT
public:explicit Sendee(QObject *parent = nullptr);signals:public slots:void receiveSignal();
};
再到接收者类的源文件中实现槽函数功能
#include <QDebug>void Sendee::receiveSignal() {qDebug()<<"We have received the signal.";
}
此时实际自定义信号与槽的工作已完成
实现信号的调用发送
widget头文件(widget.h)
#include "sender.h"class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();Sender* sder = nullptr; //创建发送者指针void emitSignal(); //声明发送函数
};
widget源文件(widget.cpp)
#include "sendee.h"Widget::Widget(QWidget *parent): QWidget(parent)
{sder = new Sender(this); //实例化发送者对象Sendee* sdee = new Sendee(this); //创建接收者对象//连接信号与槽connect(sder, &Sender::sendSignal, sdee, &Sendee::receiveSignal);emitSignal(); //调用发送函数
}void Widget::emitSignal() { //实现发送函数emit sder->sendSignal(); //发送信号
}
实现效果:
信号连接
所谓信号连接,就是用一个信号去唤醒调用另一个信号。
方式一:
#include <QPushButton>
#include "sendee.h"Widget::Widget(QWidget *parent): QWidget(parent)
{sder = new Sender(this); //实例化发送者对象Sendee* sdee = new Sendee(this); //创建接收者对象//连接信号与槽connect(sder, &Sender::sendSignal, sdee, &Sendee::receiveSignal);QPushButton *btn = new QPushButton("发送", this);//让按钮点击事件去唤醒信号发送函数connect(btn, &QPushButton::clicked, this, &Widget::emitSignal);
}void Widget::emitSignal() { //实现发送函数emit sder->sendSignal(); //发送信号
}
方式二:
#include <QPushButton>
#include "sendee.h"Widget::Widget(QWidget *parent): QWidget(parent)
{sder = new Sender(this); //实例化发送者对象Sendee* sdee = new Sendee(this); //创建接收者对象//连接信号与槽connect(sder, &Sender::sendSignal, sdee, &Sendee::receiveSignal);QPushButton *btn = new QPushButton("发送", this);//让按钮点击事件直接去唤醒信号connect(btn, &QPushButton::clicked, sder, &Sender::sendSignal);
}
实现效果: