我正在学习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)));
}
答案 0 :(得分:0)
当您致电QObject::connect()
时,方法类MainWindow
必须完全合格。在你的情况下,你只是向前声明它,所以编译器不知道,MainWindow
是从QMainWindow
继承的。只需将#include "mainwindow.h"
添加到webview.cpp