簡體   English   中英

Qt-沒有匹配函數可以調用connect

[英]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是不夠的。 gameLogicclass gameLogic : public QObject ,connect可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM