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

Это дает мне сообщение о том, что 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

0

Решение

Вы пытаетесь позвонить load() метод вашего webview класс здесь:

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

Тем не менее, ваш класс является производным от QMainWindow:

class webview : public QMainWindow

И базовый класс, и ваш производный класс действительно не имеют load() метод. Вы должны получить свой webview класс от QWebView вместо QMainWindow, В этом случае базовый класс load() метод будет вызван, и он будет работать нормально.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]