保存和加载QWebEngineHistory到QWebEnginePage可以使用QSettings来实现。下面是一个包含代码示例的解决方法:
保存QWebEngineHistory到QWebEnginePage:
QWebEnginePage* page = new QWebEnginePage(this);
QWebEngineProfile* profile = page->profile();
QWebEngineHistory* history = profile->history();
// 保存历史记录到QSettings
QSettings settings("MyCompany", "MyApplication");
settings.setValue("historySize", history->count());
for (int i = 0; i < history->count(); i++) {
QWebEngineHistoryItem item = history->itemAt(i);
settings.setValue(QString("historyUrl%1").arg(i), item.url().toString());
}
加载QWebEngineHistory到QWebEnginePage:
QWebEnginePage* page = new QWebEnginePage(this);
QWebEngineProfile* profile = page->profile();
QWebEngineHistory* history = profile->history();
// 从QSettings加载历史记录
QSettings settings("MyCompany", "MyApplication");
int historySize = settings.value("historySize").toInt();
for (int i = 0; i < historySize; i++) {
QString url = settings.value(QString("historyUrl%1").arg(i)).toString();
QUrl qurl(url);
QWebEngineHistoryItem item(qurl);
history->addItem(item);
}
这样,您就可以将QWebEngineHistory保存到QSettings并在需要时加载回来。请注意,示例中的"MyCompany"和"MyApplication"是用于标识和区分不同应用程序和设置的示例值,您可以根据自己的需要进行修改。