QT中简单的emit使用

1.在这里需要感谢一下九月小姐姐的亲情帮助!

2.在这个一般使用emit的时候都是用户自定义的一个信号,废话少说上代码。

1.这里是两个不相关的类,在qt里可以是两个界面也可以是别的什么。这个一般都是在.h里写的。

class A
{
public:
    ***//公共的行为或属性***
 
private:
    ***//公共的行为或属性***

signals:
	***//信号***

slots:
	***//槽***

};
class B
{
public:
    ***//公共的行为或属性***

private:
    ***//公共的行为或属性***

signals:
	***//信号***

slots:
	***//槽***

};

2.现在A类要给B类一个信号,让B类出现一个用户想要的自定义现象。

1.这是在.h里的

***A类的.h中***
class A
{
public:
	***//公共的行为或属性***
 	void Dome();
 	***//这个是演示的例子属性***
private:
    ***//公共的行为或属性***
    
signals:
	***//信号***
	void AmySignal();
	***//在信号的里面加上一个你自定义的信号.***

slots:
	***//槽***

};
***B类的.h中***
class B
{
public:
    ***//公共的行为或属性***

private:
    ***//公共的行为或属性***

signals:
	***//信号***

slots:
	***//槽***
	void BmySlot1();
	***//在B类中填一个你想要的现象的定义。***
};

2.这是在.cpp里的

***A类的cpp***
void A::Dome()
{
	B = new B;
	******//在这里要先将B类实例化***
	***//信号与槽需要实例化对象******
	
	connect(this, SIGNAL(mySignal()), B, SLOT( BmySlot1()));
	***//将A类的信号和B类的槽函数链接起来***
	
	emit void AmySignal();
	***//发出信号***
}
***B类的cpp***
void B::BmySlot1()
{
	printf("hello world\n");
	***//实现***
}

3.这样就可以在A中对B使用信号了。

3.小补充(欢迎大家补充)

1.重点是要在A类中包含B类。

1.例子是最简单的用法,在A类中也可以用不同的方式来触发信号,也可以使用不同的方法(使用不同的函数)去连接B类的槽函数。
2.在B类中也可以不同的方式去响应这个信号。

你可能感兴趣的:(QT,Qt,Qt入门)