Я хотел бы задать вам вопрос. Я пишу приложение в 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 все работает нормально. Что я делаю не так? Не могли бы вы мне помочь? Спасибо ..
Когда вы делаете это:
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);
Других решений пока нет …