QT多標簽瀏覽器(一)


       最近在用QT寫個簡單的瀏覽器,原來的版本是5.7,沒有QWebView,而是使用QAxWidget加載ie。優點是打開網頁速度快,但是當點擊網頁中的鏈接時,會自動調用windows的IE瀏覽器,水平有限,不知道如何在自己的程序中打開,搜索無果,不得已放棄使用QAxWidget(大神求教!!!),降低QT版本至5.6,使用QWebView。

(1)繪制QT界面

增加6個QToolButton和一個QLineEdit,圖標在QT安裝目錄下搜索.png即可獲得;

增加一個QTabWidget和一個QWebView,效果如下:

(2)添加槽函數用於打開網頁,並鏈接地址欄的回車信號和槽函數

void LXBrowser::goWeb()
{
	QString url = ui.addressLineEdit->text();
	url = "http://" + url; // 需要加上http:://才能打開網頁。。。有待改進
	ui.webView->load(url);
}

(3)連接QWebView中的linkClicked(const QUrl &)信號和槽函數,用於在新頁面打開網頁

connect(ui.webView, SIGNAL(linkClicked(const QUrl &)), this, SLOT(clickLink(const QUrl &)));
void LXBrowser::clickLink(const QUrl &linkUrl)
{
    QWebView* newWebView = new QWebView();
    newWebView->load(linkUrl);
    int index = ui.tabWidget->addTab(newWebView, linkUrl.fileName());
    ui.tabWidget->setCurrentIndex(index);
    ui.addressLineEdit->setText(linkUrl.toString());
}

效果:

超級簡單的瀏覽器就完成了,哈哈哈

存在問題:

1、前進、后退、停止、收藏、歷史等功能尚未實現;

2、新標簽的title;

3、打開網頁慢,尤其是愛奇藝、優酷等視頻或者大量圖片的網站;

4、需要添加狀態欄顯示當前網頁加載的百分比


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM