[英]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.