如何在qt5中传递多个参数给SLOT函数



作为示例,我有一个函数

void MyClass::foo( int i, int j ){ cout << i+j; }

和我希望一个信号在类

的某个函数上执行一个槽
connect( Object, SIGNAL( mysignal() ), SLOT( this->foo(1,2) ) );
如果有一个参数,则显示错误

QT有关于信号和插槽的优秀文档http://qt-project.org/doc/qt-5/signalsandslots.html,请确保您理解语法。在你的例子中,它将是像

这样的东西
connect( pointerToObjectEmittingTheSignal, SIGNAL(my_signal(int, int) ), 
         this, SLOT(my_slot(int, int));

另外,你的信号声明应该有两个类型为intint的参数

signals:
     void my_signal(int, int);

注意,在Qt5中您可以使用新的信号/槽语法并这样写:

connect( pointerToObjectEmittingTheSignal, &MyClass::my_signal, 
         this, &MyOtherClass::my_slot);

的优点是,如果你犯了一个错误,你会得到一个编译时错误,而不是一个运行时错误。

相关内容

  • 没有找到相关文章

最新更新