我找到了这些答案here,here和here,但没有人可以帮助我解决我的问题,因为我的插槽位于另一个类中,答案是针对静态插槽同一班 请考虑以下代码:
class Util : public QObject
{
Q_OBJECT
public slots:
static void clean(); // static
private:
Util(QObject *parent=0): QObject(parent){} // be always static
};
class Handler: public QObject
{
Q_OBJECT
public:
Handler(QObject *parent=0): QObject(parent){}
signals:
void cleanup();
};
和 MainWindow 功能 connectSignal();
void MainWdindow::connectSignal()
{
Handler *handler = new Handler();
connect(handler, SIGNAL(cleanup), &Util::clean) // compile error
}
错误是:
no matching function for call MainWindow::connect(Handler*&, const char*, void(*)())
....
note: cannot convert Util::clean(type void(*)()) to type const QObject*
任何帮助表示赞赏。感谢
更新
在评论中解决了解决方案