widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
~Widget();
public slots://定义需要的槽函数
void myslot1();
void myslot2(int b);
void myslot3();
void myslot4();
};
#endif // WIDGET_H
rua.h
自建的类,用来传输信号,基类为QObject
#ifndef RUA_H
#define RUA_H
#include <QObject>
class rua : public QObject
{
Q_OBJECT
public:
explicit rua(QObject *parent = nullptr);
signals://定义需要的信号
void rsignal1();
void rsignal2(int a);
public slots:
};
#endif // RUA_H
widget.cpp
#include "widget.h"
#include<QDebug>//输出
#include<QPushButton>//按钮
#include"rua.h"
rua *p;
void QObject::timerEvent(QTimerEvent *event)//定义时间事件
{
qDebug()<<"8点"<<endl;
emit p->rsignal1();//发送rua类对象中的信号
emit p->rsignal2(22);
}
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
QObject::startTimer(1500);//创建定时器,每1.5s调用一次时间事件
QPushButton *pbt1=new QPushButton(this);//创建按钮
QPushButton *pbt2=new QPushButton(this);
this->setFixedSize(600,400);//设置界面大小
pbt1->resize(100,60);//设置按钮大小
pbt2->resize(100,60);
pbt1->move(150,200);//将按钮移动到想要的位置
pbt2->move(350,200);
pbt1->setText("土人才玩土游!");//设置按钮上的文本
pbt2->setText("复仇者集合!");
connect(pbt1,&QPushButton::clicked,this,&Widget::myslot3);//创建按钮信号和槽函数的连接
connect(pbt2,&QPushButton::clicked,this,&Widget::myslot4);
p=new rua;//创建对象进行连接
connect(p,&rua::rsignal1,this,&Widget::myslot1);//创建对象信号和槽函数的连接
connect(p,&rua::rsignal2,this,&Widget::myslot2);
}
Widget::~Widget()//析构函数
{
}
void Widget::myslot1()//定义信号对应的槽函数
{
qDebug()<<"黑暗剑啊,早就做好了"<<endl;
}
void Widget::myslot2(int b)
{
qDebug()<<"今晚,进行一个遨游,摸了"<<endl;
}
void Widget::myslot3()
{
qDebug()<<"耳鸣星?土鸣星啊!"<<endl;
}
void Widget::myslot4()
{
qDebug()<<"登登,登,登,登"<<endl;
}
main.cpp
创建Widgets应用项目,基类为Qwidget,*面文件
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}