24小时学通Qt之第四学时:槽和信号

一、问题与答案

1、编译器报告未找到connect()函数,为什么?

答:如果调用connect()函数而未定义从哪个类中查找它,将出现这种错误。这种调用必须在一个QObject派生类的方法内。如果从一个外部函数中调用,必须这样:

QObject::connect();

2、编译器报告传递给connect()函数的参数错误,这是为什么?

答:connect()函数参数使用对象指针,而不是对象自身。因此,必须确认所提供的参数是正确的。

二、测试

1、什么是槽?

答:槽是一种特殊类型的成员函数,它可以被连接到信号。当发射信号时,槽(函数)将被执行。

2、什么是信号?

答:信号是一种特殊类型的函数,它可以被连接到槽。当某个事件发生时,信号通知槽,之后,槽被执行。

3、怎样将信号连接到槽?

答:使用QObject::connect()函数。

4、能否将多个槽连接到一个信号?

答:这是可能的。只需为每次连接调用一次connect()函数。

5、什么时候能够调用connect()函数而不指定定义它的类?

答:当从派生与QObject或其子类的类成员函数中调用时。

6、能够将被连接的信号与槽断开吗?

答:这是可以的。只需使用QObject::disconnect()函数。

7、在调用connect()函数时,省略槽所属对象名称意味着什么?

答:意味着槽在当前类中定义(也就是说,类是当前所定义类)。因此。只能从具有槽的类成员函数中执行这类调用。

8、是否能够将一个信号连接到其他信号?如果能,怎么操作?

答:可以。只需像通常一样使用connect()函数,如

connect(button,SIGNAL(clicked()),this,SIGNAL(anothersignal());

猜你喜欢

转载自blog.csdn.net/weixin_32486301/article/details/84836609