簡體   English   中英

Qt C ++自定義插槽

[英]Qt C++ Custom Slot

我在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()));

它給我一條消息,說負載不是公認的成員。 我需要更改什么?

編輯:這是完整的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

您正在嘗試在此處調用webview類的load()方法:

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

但是,您的類是從QMainWindow派生的:

class webview : public QMainWindow

基類和派生類實際上都沒有任何load()方法。 您應該從QWebView而不是QMainWindow派生webview類。 在這種情況下,將調用基類的load()方法,並且可以正常工作。

暫無
暫無

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

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