Re: QWebView не переходит по ссылками
От: pro_gerr  
Дата: 08.10.10 08:22
Оценка:
В общем, из положения вышел пока таким способом:
сабклассил QNetworkAccessManager:

class CNetworkAccessManager : public QNetworkAccessManager
{
public:
    CNetworkAccessManager(QObject *parent = 0, QUrl url = QUrl())
        : QNetworkAccessManager(parent)
    {m_url = url;}
    void setUrl(QUrl url = QUrl()) { m_url = url;}
private:
    QUrl m_url;
protected:
    QNetworkReply *createRequest()
    {
        QNetworkRequest req;
        req.setRawHeader(QByteArray("User-Agent"), QByteArray("Mozilla"));
        req.setRawHeader(QByteArray("Refer"), m_url.toString().toUtf8());
        return QNetworkAccessManager::createRequest(QNetworkAccessManager::GetOperation, req);
    }

};

отлавливаю QWebView::linkClicked, и в нем подменяю QWebView::QwebPage::QNetworkAccessManager


void MainWindow::onLinkClick(const QUrl &url)
{
    m_accessManager->setUrl(m_browser->url());
    m_browser->page()->setNetworkAccessManager(m_accessManager); // CNetworkAccessManager *m_accessManager
    m_browser->load(url);
}

почему не работает изначально, а в примере работает — хз.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.