我正在读一本Qt的书,可能不太好,这给我带来了一些麻烦。我需要从
QWebEngineView* webview;
我是根据这本书写这段代码的:
QWebEngineHistory* h = QWebEnginePage::history();
这就是我应该如何检索历史,然后我可以使用
h->items();
. 问题是上面的代码产生
调用不带对象参数的非静态成员函数
我该怎么解决?我需要得到导航页面的历史记录
我已经试过了
QWebEngineHistory* h = webview->history();
但现在我不能打电话
h->items()
. 我该怎么解决?我需要进入
items()
.
头文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QWebEngineView>
#include <QWebEnginePage>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow {
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow() override;
virtual void paintEvent(QPaintEvent* event) override;
private slots:
void on_pushButton_2_clicked();
void on_pushButton_3_clicked();
void on_pushButton_clicked();
void on_pushButton_4_clicked();
void on_url_input_returnPressed();
void on_pushButton_5_clicked();
void on_pushButton_7_clicked();
void on_pushButton_6_clicked();
private:
Ui::MainWindow *ui;
QWebEngineView* webview;
void loadPage() const;
};
#endif // MAINWINDOW_H
实施
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow) {
ui->setupUi(this);
webview = new QWebEngineView(ui->webViewFrame);
loadPage();
}
MainWindow::~MainWindow() {
delete ui;
}
void MainWindow::on_pushButton_2_clicked() {
webview->back();
}
void MainWindow::on_pushButton_3_clicked() {
webview->forward();
}
void MainWindow::on_pushButton_clicked() {
webview->reload();
}
void MainWindow::on_pushButton_4_clicked() {
loadPage();
}
void MainWindow::loadPage() const {
QString url = ui->url_input->text();
if (url.length() == 0)
url = "http://www.google.it";
if (!url.startsWith("http://") && !url.startsWith("https://"))
url = "http://" + url;
ui->url_input->setText(url);
ui->listWidget->addItem(url);
webview->load(QUrl(url));
}
void MainWindow::on_url_input_returnPressed() {
loadPage();
}
void MainWindow::paintEvent(QPaintEvent* event) {
QMainWindow::paintEvent(event);
webview->resize(ui->webViewFrame->size());
}
void MainWindow::on_pushButton_5_clicked() {
QWebEngineHistory* h = webview->history();
auto x = h->items(); //error here!!
ui->stackedWidget->setCurrentIndex(0);
}
void MainWindow::on_pushButton_7_clicked() {
ui->stackedWidget->setCurrentIndex(1);
}
void MainWindow::on_pushButton_6_clicked() {
ui->listWidget->clear();
}