Qt c++中不同类的信号/槽功能

Signal/Slots feature for different classes in Qt C++

本文关键字:信号 功能 同类 c++ Qt      更新时间:2023-10-16

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

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

似乎你有一个类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()));

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