qt信号槽函数

一.通过代码的方式加qt类自带的信号,与自定义的槽函数,实现信号槽:

1.在类中声明一个槽函数:
private slots:
    void TimcrEvent();//定义一个槽函数专门处理定时器槽函数

2.在类中定义一个槽函数:
void MainWindow::TimcrEvent()
{
   qDebug()<<"你好呀";
}

3.然后就可以连接自定义信号和槽:
 connect(timer,&QTimer::timeout,this, &MainWindow::TimcrEvent);

timer:为qt类对象指针

QTimer::timeout:qt类自带信号

this:当前类自定义指针

&MainWindow::TimcrEvent:自定义函数地址

二.通过自定义对象的信号和自定义对象的槽函数实现

1.在类中定义一个信号:

signals:

void sendArray(int a);

2.在类中声名一个槽:

private slots:
    void TimcrEvent(int b);//定义一个槽函数专门处理定时器槽函数

3.在类中定义一个槽函数:
void MainWindow::TimcrEvent(int b)
{
   qDebug()<<"你好呀"<<b;
}

4.就可以连接信号槽函数了

connect(this,SIGNAL(sendArray(int)),this,  SLOT(TimcrEvent(int)));
 

注意:发射信号的方法举例
在该类的方法中:emit sendArray(100);

二.通过lambda表达式自定义对象的信号和自定义对象的槽函数实现

1.在类中定义一个信号:

signals:

void sendArray(int a);

4.就可以连接信号槽函数了

 connect(this,&MainWindow::sendArray,this,[=](int a){


});

注意:发射信号的方法举例
在该类的方法中:emit sendArray(100);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt中,信号是一种用于对象间通信的机制。信号是对象发出的事件,而是对这些事件进行响应的函数。当一个信号被触发时,与之相连接的函数将会被调用。 在Qt中,信号函数可以具有不同的参数类型。当信号函数的参数类型不匹配时,Qt会自动进行类型转换。但是,如果你需要传递额外的参数给函数,你可以使用信号函数指针参数。 具体来说,你可以在信号函数的定义中使用指针参数。当信号被触发时,可以通过指针参数传递额外的数据给函数。这样,函数就可以根据传递的数据进行相应的处理。 下面是一个示例代码,演示了如何在Qt中使用信号函数指针参数: ```cpp class MyObject : public QObject { Q_OBJECT public: MyObject(QObject *parent = nullptr) : QObject(parent) {} signals: void mySignal(int value, QString text); public slots: void mySlot(int value, QString text) { // 处理传递过来的参数 qDebug() << "Received value:" << value; qDebug() << "Received text:" << text; } }; int main(int argc, char *argv[]) { QApplication app(argc, argv); MyObject obj; // 连接信号函数 QObject::connect(&obj, &MyObject::mySignal, &obj, &MyObject::mySlot); // 触发信号,并传递参数 emit obj.mySignal(42, "Hello, world!"); return app.exec(); } ``` 在上面的示例中,`mySignal`信号带有两个参数:一个整数和一个字符串。`mySlot`函数也带有相同的参数。通过使用信号函数指针参数,我们可以将信号的参数传递给函数进行处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值