没有匹配的函数c ++

时间:2014-07-16 20:40:29

标签: c++ qt

我正在学习C ++而我遇到了一个问题。我试图制作一个简单的网络浏览器。这可能是因为我在WebWiew中使用了Class MainWindow。如果我在WebWiew中包含MainWindow,编译器会说MainWindow类不存在。

将WebView与界面连接时出现问题。 我制作了我的程序的简短版本。

webview.cpp:6: erreur : no matching function for call to 'WebView::connect(WebView* const, const char*, MainWindow*&, const char*)';

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtWebKitWidgets>
#include "webview.h"

class MainWindow : public QMainWindow
{
    Q_OBJECT
public:    
    MainWindow();

public slots:
    void adressChanged(QUrl url);
    void setTabTitle(QString title);
    void setProgressionValue(int value);
};

#endif // MAINWINDOW_H

#ifndef WEBVIEW_H
#define WEBVIEW_H

#include <QWebView>

class MainWindow;

class WebView : public QWebView
{
public:
    WebView(MainWindow *interface, QWidget *parent = 0);

private:
    MainWindow *interface;

};

#endif // WEBVIEW_H

#include "webview.h"

WebView::WebView(MainWindow *interface, QWidget *parent) : QWebView(parent), interface(interface)
{
    QObject::connect(this, SIGNAL(titleChanged(QString)), this->interface, SLOT(setTabTitle(QString)));
    QObject::connect(this, SIGNAL(urlChanged(QUrl)), this->interface, SLOT(adressChanged(QUrl)));
    QObject::connect(this, SIGNAL(loadProgress(int)), this->interface, SLOT(setProgressionValue(int)));
}

1 个答案:

答案 0 :(得分:0)

当您致电QObject::connect()时,方法类MainWindow必须完全合格。在你的情况下,你只是向前声明它,所以编译器不知道,MainWindow是从QMainWindow继承的。只需将#include "mainwindow.h"添加到webview.cpp

即可