void MyWebView::initEvents() { // 委托页面所有连接在当前视图中打开 myPage->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); connect(myPage, SIGNAL(linkClicked(QUrl)), this, SLOT(onOpenUrl(QUrl))); // 对所有事件添加信号槽 connect(myFrame, SIGNAL(loadFinished(bool)), this, SLOT(onLoadFinished(bool))); connect(myFrame, SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(onJavaScriptWindowObjectCleared())); connect(myFrame, SIGNAL(initialLayoutCompleted()), this, SLOT(onInitialLayoutCompleted())); connect(myFrame, SIGNAL(pageChanged()), this, SLOT(onPageChanged())); connect(myFrame, SIGNAL(contentsSizeChanged(const QSize)), this, SLOT(onContentsSizeChanged(const QSize))); connect(myFrame, SIGNAL(iconChanged()), this, SLOT(onIconChanged())); connect(myFrame, SIGNAL(loadStarted()), this, SLOT(onLoadStarted())); connect(myFrame, SIGNAL(titleChanged(const QString)), this, SLOT(onTitleChanged(const QString))); connect(myFrame, SIGNAL(urlChanged(const QUrl)), this, SLOT(onUrlChanged(const QUrl))); connect(myPage, SIGNAL(loadProgress(int)), this, SLOT(onLoadProgress(int))); connect(myPage, SIGNAL(repaintRequested(const QRect)), this, SLOT(onRepaintRequested(const QRect))); connect(myPage, SIGNAL(geometryChangeRequested(const QRect)), this, SLOT(onGeometryChangeRequested(const QRect))); connect(newManager, SIGNAL(requestFinished(QString)), this, SLOT(onRequestFinished(QString))); connect(newManager, SIGNAL(requestStart(QString)), this, SLOT(onRequestStart(QString))); };
void MainWindow::buildUI() { delete m_toolBar; m_toolBar = addToolBar("Navigation"); QAction* reloadAction = page()->action(QWebPage::Reload); connect(reloadAction, SIGNAL(triggered()), this, SLOT(changeLocation())); m_toolBar->addAction(page()->action(QWebPage::Back)); m_toolBar->addAction(page()->action(QWebPage::Forward)); m_toolBar->addAction(reloadAction); m_toolBar->addAction(page()->action(QWebPage::Stop)); #ifndef QT_NO_INPUTDIALOG urlEdit = new LocationEdit(m_toolBar); urlEdit->setSizePolicy(QSizePolicy::Expanding, urlEdit->sizePolicy().verticalPolicy()); connect(urlEdit, SIGNAL(returnPressed()), SLOT(changeLocation())); QCompleter* completer = new QCompleter(m_toolBar); urlEdit->setCompleter(completer); completer->setModel(&urlModel); m_toolBar->addWidget(urlEdit); connect(page()->mainFrame(), SIGNAL(urlChanged(QUrl)), this, SLOT(setAddressUrl(QUrl))); connect(page(), SIGNAL(loadProgress(int)), urlEdit, SLOT(setProgress(int))); #endif connect(page()->mainFrame(), SIGNAL(loadStarted()), this, SLOT(onLoadStarted())); connect(page()->mainFrame(), SIGNAL(iconChanged()), this, SLOT(onIconChanged())); connect(page()->mainFrame(), SIGNAL(titleChanged(QString)), this, SLOT(onTitleChanged(QString))); connect(page(), SIGNAL(windowCloseRequested()), this, SLOT(close())); #ifndef QT_NO_SHORTCUT // short-cuts page()->action(QWebPage::Back)->setShortcut(QKeySequence::Back); page()->action(QWebPage::Stop)->setShortcut(Qt::Key_Escape); page()->action(QWebPage::Forward)->setShortcut(QKeySequence::Forward); page()->action(QWebPage::Reload)->setShortcut(QKeySequence::Refresh); #ifndef QT_NO_UNDOSTACK page()->action(QWebPage::Undo)->setShortcut(QKeySequence::Undo); page()->action(QWebPage::Redo)->setShortcut(QKeySequence::Redo); #endif page()->action(QWebPage::Cut)->setShortcut(QKeySequence::Cut); page()->action(QWebPage::Copy)->setShortcut(QKeySequence::Copy); page()->action(QWebPage::Paste)->setShortcut(QKeySequence::Paste); page()->action(QWebPage::SelectAll)->setShortcut(QKeySequence::SelectAll); page()->action(QWebPage::ToggleBold)->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_B)); page()->action(QWebPage::ToggleItalic)->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_I)); page()->action(QWebPage::ToggleUnderline)->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_U)); #endif }
void WebBrowser::createConnections() { connect(m_webView, &WebViewer::messageStatusChangeRequested, this, &WebBrowser::receiveMessageStatusChangeRequest); connect(m_txtLocation,SIGNAL(submitted(QString)), this, SLOT(loadUrl(QString))); connect(m_webView, SIGNAL(urlChanged(QUrl)), this, SLOT(updateUrl(QUrl))); // Connect this WebBrowser to global TabWidget. //TabWidget *tab_widget = qApp->mainForm()->tabWidget(); //connect(m_webView, SIGNAL(newTabRequested()), tab_widget, SLOT(addEmptyBrowser())); //connect(m_webView, SIGNAL(linkMiddleClicked(QUrl)), tab_widget, SLOT(addLinkedBrowser(QUrl))); // Change location textbox status according to webpage status. connect(m_webView, SIGNAL(loadStarted()), this, SLOT(onLoadingStarted())); connect(m_webView, SIGNAL(loadProgress(int)), this, SLOT(onLoadingProgress(int))); connect(m_webView, SIGNAL(loadFinished(bool)), this, SLOT(onLoadingFinished(bool))); // Forward title/icon changes. connect(m_webView, SIGNAL(titleChanged(QString)), this, SLOT(onTitleChanged(QString))); connect(m_webView, SIGNAL(iconChanged(QIcon)), this, SLOT(onIconChanged(QIcon))); }