0

我在 Qt 中制作自定义插槽时遇到了麻烦。代码:

类.h文件:

public slots:
    void resetUrl(){
        this->load(QUrl("http://www.google.com"));
}

main.cpp 文件:

#include <QWebView>
#include <QPushButton>

QWebView *web = new QWebView(mainwindow);
QPushButton *button = new QPushButton(mainwindow);

web->load(QUrl("http://www.yahoo.com"));
button->setText("Google");

QObject::connect(button, SIGNAL(clicked()), web, SLOT(resetUrl()));

它给了我一条消息,说 load 不是公认的成员。我需要改变什么?

编辑:继承人完整的 webview.h 文件:

#ifndef WEBVIEW_H
#define WEBVIEW_H

#include <QMainWindow>
#include <QWebView>


namespace Ui {
class webview;
}

class webview : public QMainWindow
{
    Q_OBJECT

public:
    explicit webview(QWidget *parent = 0);
    ~webview();

public slots:
    void resetUrl(){
        this->load(QUrl("http://www.google.com"));
    }

private:
    Ui::webview *ui;
};

#endif // WEBVIEW_H
4

1 回答 1

0

您正在尝试在这里调用load()您的webview类的方法:

void resetUrl(){
    this->load(QUrl("http://www.google.com"));
}

但是,您的类派生自QMainWindow

class webview : public QMainWindow

基类和派生类都没有任何load()方法。你应该从而不是派生你的webview类。在这种情况下,将调用基类的方法,它会正常工作。QWebViewQMainWindowload()

于 2013-08-23T05:13:14.507 回答