作为样本,我有一个功能
void MyClass::foo( int i, int j ){ cout << i+j; }
我希望一个信号在类
的某个函数上执行一个槽connect( Object, SIGNAL( mysignal() ), SLOT( this->foo(1,2) ) );
使用一个参数可以工作,但在插槽上显示2个或更多参数的错误。
答案 0 :(得分:4)
QT拥有关于信号和插槽http://qt-project.org/doc/qt-5/signalsandslots.html的出色文档,请确保您理解语法。在你的情况下,它将像
connect( pointerToObjectEmittingTheSignal, SIGNAL(my_signal(int, int) ),
this, SLOT(my_slot(int, int));
此外,您的信号声明应采用int
和int
类型的两个参数
signals:
void my_signal(int, int);
答案 1 :(得分:2)
请注意,在Qt5中,您可以使用new signal/slot syntax并写下:
connect( pointerToObjectEmittingTheSignal, &MyClass::my_signal,
this, &MyOtherClass::my_slot);
优点是如果你犯了一个错误,你将得到一个编译时错误,而不是运行时错误。