qt槽函数不同cpp传参,代码示例
时间: 2023-05-19 20:04:55 浏览: 115
Qt connect传参方式及lambda函数传参方式演示
非常感谢您的提问,以下是一个简单的示例代码:
// main.cpp
#include <QCoreApplication>
#include "myclass.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
MyClass myObj;
myObj.doSomething();
return a.exec();
}
// myclass.h
#ifndef MYCLASS_H
#define MYCLASS_H
#include <QObject>
class MyClass : public QObject
{
Q_OBJECT
public:
explicit MyClass(QObject *parent = nullptr);
signals:
public slots:
void mySlot(int value);
public:
void doSomething();
private:
int m_value;
};
#endif // MYCLASS_H
// myclass.cpp
#include "myclass.h"
#include <QDebug>
MyClass::MyClass(QObject *parent) : QObject(parent)
{
m_value = 0;
}
void MyClass::mySlot(int value)
{
m_value = value;
qDebug() << "Received value: " << m_value;
}
void MyClass::doSomething()
{
// Connect the signal to the slot
connect(this, SIGNAL(mySignal(int)), this, SLOT(mySlot(int)));
// Emit the signal with a value of 42
emit mySignal(42);
}
在这个示例中,我们创建了一个名为 MyClass 的类,它继承自 QObject。该类有一个名为 mySlot 的槽函数,它接受一个整数参数。在 MyClass 的 doSomething 函数中,我们将 MyClass 的 mySignal 信号连接到 mySlot 槽函数,并发出一个值为 42 的信号。当 mySlot 函数被调用时,它将接收到的值存储在 m_value 成员变量中,并输出它到控制台。
希望这个示例对您有所帮助!
阅读全文