我在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
答案 0 :(得分:0)
您正尝试在此处调用load()
课程的webview
方法:
void resetUrl(){
this->load(QUrl("http://www.google.com"));
}
但是,您的课程来自QMainWindow
:
class webview : public QMainWindow
基类和派生类确实没有任何load()
方法。您应该从webview
而不是QWebView
派生QMainWindow
课程。在这种情况下,将调用基类'load()
方法,它将正常工作。