Qt中信号与槽函数参数不匹配的解决办法?
Qt中的信号和槽机制大家都很了解的吧,信号所带的参数类型和槽函数的参数类型要一一对应。如果信号不带参数,那么槽函数的参数也要为空,就像connect(thread, SIGNAL(started()), work, SLOT(first()));started()信号与first()槽函数的参数都为空。但是如果二者的参数类型不一样,该如何处理了?
我现在就遇到了这样一个问题:我有一个A类和一个B类,还有一个MainWindow类,在A类中有一个槽函数A1,不过这个A1函数有2个参数,其中一个参数是B的实例对象b,因此在调用A1函数时的写法是A1(x,b)。其中,在MainWindow中有一个PushButton按钮,在这个按钮的clicked槽函数里执行了启动线程thread.start(),我在构造函数中,将A类的实例对象a通过movetoThread(thread)这个方法移到了一个新开辟的线程里。现在在clicked槽函数要使线程在start后执行对象a的A1(x,b)函数,就得使用信号槽方法将connect(thread, SIGNAL(started()), a, SLOT(A1(X,B)));加到构造函数中,但是这样started()信号和槽函数A1(X,B)的参数就不匹配了。
这就是我目前想不到办法解决的问题。这个问题的描述我写的很详细,希望有能看懂的朋友教我如何处理这样的问题。