Qt信号与槽用法

实现窗口A发送一个信号,B接收这个信号,然后执行一系列操作。

窗口A和窗口B没有任何联系。

需要让A的指针,作为B的成员变量

class ResetPwd 
{
public:
    fun();

signals:
     void SignalPwd(QString OldPwd, QString NewPwd); // 定义个信号

    QString OldPwd;
    QString NewPwd;
};
// 调用这个函数发送一个信号
void ResetPwd::fun()
{
    .....函数内容
    emit SignalPwd(OldPwd,NewPwd);  // 发送一个信号广播,让主窗口Mainwindow接收
}


class MainWindow 
{
public:
void f2();
private slots: void slotPwd(QString OldPwd, QString NewPwd); // 修改密码的槽函数 private: QString username; // 记录当前登录的用户名 QString password; //记录当前用户的密码 ResetPwd *repwd; // 修改密码类对象 ResetPwd类对象作为,目标窗口的成员变量 }; void MainWindow::f2() { repwd = new ResetPwd(this); repwd->show(); // 这里自定义的信号与槽,从不同的对象中传来的 // repwd 传来一个SignalPwd的信号,this 执行 slotPwd函数 connect(repwd, &ResetPwd::SignalPwd, this, &MainWindow::slotPwd); } void MainWindow::slotPwd(QString OldPwd, QString NewPwd) { 执行slotPwd函数 ... } 就是 ResetPwd类对象发送了一个 自定义的信号SignalPwd(可传参) // 广播的方式发射 MainWindow 类对象接收,然后处理 repwd对象传来了一个自定义的,可传参的信号, MainWindow对象接收后,执行操作 connect(repwd, &ResetPwd::SignalPwd, this, &MainWindow::slotPwd);

还有常用的转到槽

猜你喜欢

转载自www.cnblogs.com/xiaokang01/p/12555230.html