QT Хэш-теги / загрузка ссылок в QWebView

Я хотел бы задать вам вопрос. Я пишу приложение в QT Designer и сделал своего рода веб-браузер. У меня есть две радио кнопки. Если первый проверен — страница index.html нормально загружается в мой QWebView. Я использую это:

string url = sDir + ui->pageComboBox->currentText().toStdString() + ".html";
ui->logView->load(QUrl::fromLocalFile(QDir::cleanPath(QDir::current().absoluteFilePath(QString::fromStdString(url)))));

Работает нормально.
Но я даю пользователю второй вариант загрузки страницы — если установлен второй переключатель, он активирует DateEdit, и пользователь должен выбрать дату. Выбранная дата сохраняется в QString. Теперь я хотел бы загрузить ту же страницу с прокруткой вниз до этой даты:

string url = sDir + ui->pageComboBox->currentText().toStdString() + ".html" + showAt.toStdString();
ui->logView->load(QUrl::fromLocalFile(QDir::cleanPath(QDir::current().absoluteFilePath(QString::fromStdString(url)))));

Итак, запрошенная ссылка на сайт выглядит примерно так: index.html # 29082013. Здесь это не работает, ни один сайт не загружен 🙁 Все еще есть пустая страница. Я добавил теги в html-файл, поэтому, например, в Google Chrome все работает нормально. Что я делаю не так? Не могли бы вы мне помочь? Спасибо ..

0

Решение

Когда вы делаете это:

QDir::current().absoluteFilePath(QString::fromStdString(url))

Вы спрашиваете QDir (который не знает, что такое URL), чтобы получить путь к файлу index.html#29082013что, конечно, не существует.

Решение состоит в том, чтобы сначала получить путь к файлу от index.html, затем получить URL-адрес от него, и только затем добавить хэш #29082013, Попробуй это:

QString filename = QString(sDir) + ui->pageComboBox->currentText() + ".html";
QUrl urlWithoutHash = QUrl::fromLocalFile(QDir::current().absoluteFilePath(filename));
ui->logView->load(urlWithoutHash.toString() + showAt);
0

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

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

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