0

Qt でのカスタム スロットの作成に問題があります。コード:

class.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 に答える