[英]Qt - No matching function to call connect
我正在嘗試在Qt中執行經典連接,而我已經完成了上千次。 但是由於某種未知的原因,我現在無法:我得到了錯誤
error: no matching function for call to 'gameView::connect(QComboBox*&, const char*, gameLogic*&, const char*)'
connect(_dropdown, SIGNAL(activated(int)), _model, SLOT(resize(int)));
^
我的代碼如下:(gameview.h)
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QHBoxLayout>
#include <QGridLayout>
#include <QPushButton>
#include <QComboBox>
#include <QVector>
#include <QTime>
#include "gamelogic.h"
class gameView : public QWidget
{
Q_OBJECT
public:
...
QComboBox*_dropdown;
...
gameLogic* _model;
...
explicit gameView(QWidget *parent = 0);
~gameView();
};
#endif // MAINWINDOW_H
(gameview.cpp)
#include "gameview.h"
gameView::gameView(QWidget *parent) :
QWidget(parent)
{
_model = new gameLogic();
...
_dropdown = new QComboBox();
...
_dropdown->addItem("4");
_dropdown->addItem("6");
_dropdown->addItem("8");
connect(_dropdown, SIGNAL(activated(int)), _model, SLOT(resize(int))); //error here
...
}
(gamelogic.h)
#ifndef GAMELOGIC_H
#define GAMELOGIC_H
#include <QVector>
#include <QTimer>
class gameLogic
{
Q_OBJECT
public:
gameLogic();
...
public slots:
void resize(int newn);
};
#endif // GAMELOGIC_H
請幫忙!
您的gameLogic
類應該繼承QObject,否則Qt信號/插槽機制將無法正常工作。 嘗試將class gameLogic
更改為class gameLogic : public QObject
顯然,僅添加Q_OBJECT
是不夠的。 將gameLogic
為class gameLogic : public QObject
,connect可以工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.