信号/插槽功能适用于Qt C ++中的不同类

时间:2011-12-15 16:33:35

标签: c++ qt qt4

对于一个类,我声明一个槽和一个信号,并且在槽方法定义中,我使用emit关键字调用signal方法。但是我如何将一个类的信号发送到另一个具有插槽的类。

我尝试使用按钮修改标签文本。按钮由A类(必须发出信号)创建,标签由B类创建,B类必须有一个插槽来修改其上的文本

2 个答案:

答案 0 :(得分:4)

好像你有1级,它有一个将被执行的方法,并将调用“emit”。当发生这种情况时,另一个类的插槽将会找到。

第一类的定义:

class songs_text {
public:
signals:
    void send_signal();
}

int songs_text:function() { 
    emit send_signal();
}

第2课的定义:

class wind {
public slots:
    void continue_job() {
    };
}

和您的主程序:

Wind wind(); 
Get_source songs_text(&mtempfile);

QObject::connect(&songs_text, SIGNAL(send_signal()),
    &wind, SLOT(continue_job()));

答案 1 :(得分:0)

在名为void emitSignalBlahBlah()的类中添加一个公共方法,作为emit代码的包装器。然后,需要触发此信号的所有其他类将访问此对象并调用该方法来执行此操作。