成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于Qt Web瀏覽器設計與實現

移動開發
由于嵌入式系統CPU 的處理能力、內存有限, 本文通過去掉或裁剪大部分的輔助功能, 基于Q t/Em􀀁beded實現了簡易的嵌入式Web瀏覽器。Q t /Embed􀀁ded本身面向高端的手持設備和移動設備并且為用戶提供了良好的使用和交互環境, 已逐漸成為嵌入式系統的主流GU I之一。

嵌入式GU I的概況

嵌入式系統的迅速發展, 使得字符界面和簡單的圖形界面不能再滿足一些嵌入式系統的要求。隨著硬件條件和用戶需求的提高, 嵌入式系統對圖形用戶界面(GraphicU ser Interface) 的需求會越來越迫切。由于GU I是嵌入式軟件系統中的基礎軟件, 獨立開發需要投入大量的人力物力, 因此, 一批基于嵌入式Linux 的GU I系統就應運而生, 目前發展比較成熟的主要有:

(1)M icrow indow s[ 1] 系統提供了相對完善的圖形功能和一些高級的特性, 如A lpha混合、三維支持和TrueType字體支持等。M icrow indow s也有一些通用的窗口控件, 但其圖形引擎存在許多問題: 無任何硬件加速能力; 圖形引擎中存在許多低效算法; 該項目缺乏一個強有力的核心代碼維護人員。

(2)M iniGU I[ 2] 是由北京飛漫軟件技術有限公司創辦的開源L inux 圖形用戶界面支持系統, 主要目標是為基于L inux 的實時嵌入式系統提供一個輕量級的圖形用戶界面支持系統。M iniGU I有些遺憾的地方就是對輸入法的支持不是很好。

( 3)Q t /Embedded[ 3] : Q t是一個功能全面、可開發高性能的、跨平臺的、C ++ 圖形用戶界面應用程序框架[ 4] 。Qt由挪威Tro llTech公司出品。它提供給應用程序開發者建立藝術級的圖形用戶界面所需的所有功能。Q t是完全面向對象的, 很容易擴展, 并且允許真正的組件編程。Qt的良好封裝機制使得Q t的模塊化程度非常高, 可重用性較好, 對于用戶開發來說是非常方便的。Qt 提供了一種稱為signals/ slo ts ( 信號/槽) [ 5􀀁7] 的安全類型來替代callback(回調函數) , 這使得各個元件之間的協同工作變得十分簡單。

2、 Q t平臺的搭建

在Q t的官方網站上下載最新的安裝包, 注意在安裝Q t的時候需要具備root用戶的安裝權限。下載安裝包后, 解壓包, 然后歸檔管理包。解壓完成后, 進入解壓的相應目錄。用. /configure 文件找到機器的

類型以方便在編譯的時候獲得很好的支持, 并且根據后面的選項來建立一個目錄, 可以使用􀀁prefix來定制目錄[ 11] 。具體代碼如下:

  1. # ta ra􀀁zxv faqt􀀁x11􀀁opensource􀀁desktop􀀁4. 3. 2. ta r. gz  
  2. # cd qt􀀁x11􀀁opensource􀀁desktop􀀁4. 3. 2  
  3. #. / con figure 􀀁pre fix= /usr / lo ca l  
  4. #m ake 

以上命令是建立有關的庫文件、編譯文件、幫助文檔、所需要的數據及指南等。

  1. #m ake insta ll 

執行完命令后Q t就安裝在Linux 系統上了, 源代碼的編譯需要很長的時間, 安裝完成之后需要對它進行配置。修改環境變量:

  1. # v i /etc / pro file  
  2. # Add qt4. 3. 2 PATH  
  3. PATH = /usr / local/qt4. 3. 2 /bin: $ PATH  
  4. export PATH USER LOGNAME MA IL HOSTNAME H IST􀀁  
  5. SIZE INPUTRC 

為了使重新設置的環境變量生效, 運行$ source/etc /prof ile, 上面的步驟是設置全局的環境變量, 也可以在$ home /. bash _pro fle進行相應設置, 然后用source ~ /. bash_pro fle使系統的環境變量重新生效。為了節省時間, 可以重新注銷一次讓環境變量生效。這時在終端上輸入$ assistan,t qt4. 3的幫助信息顯示出來, 說明安裝成功了。用$ echo $ PATH 可以查看qt4. 3. 2環境變量是否加載成功。

3、嵌入式瀏覽器的設計原則

3. 1 設計原則

嵌入式系統CPU 處理能力一般比較弱, 更重要的一點是內存很有限, 因此嵌入在這些設備中的微型瀏覽器不可能像IE、F irefox、Max thon等瀏覽器一樣提供豐富多姿的多媒體服務, 需要對Internet內容做當的取舍, 以降低其復雜性和代碼大小。瀏覽器的設計原則[ 12] 包括: 􀀂 限制圖形化內容; 限制文本、用戶鏈接導航; ! 限制文本大小、利用空余空間; ∀限制(或消除)小部件的使用等。嵌入式瀏覽器的體系結構如圖1所示。

基于Qt Web瀏覽器設計與實現

3. 2 瀏覽器模塊
由圖1瀏覽器的體系結構[ 8] 可知, 大致可歸納為7個模塊組成:

( 1) User向She ll發出頁面請求后, 頁面的URL或本地文件名被發送到Shel;l

( 2) Shell調用IO 組件, 把URL傳達到IO 組件;

( 3) IO 組件使用HTTP協議或再調用本地IO 獲取HTML /XHTML源數據, 返回She l;l

( 4) Shell把IO 返回的HTML /XHTML source提交HTML /XHTML分析器;

( 5)根據源碼構建一棵DOM 樹;

( 6)對DOM 樹描述的可視元素進行布局, 安排位置、大小;

( 7)創建各類GU I控件。

4、應用程序的實現

本文實現的是一個簡易的嵌入式W eb 瀏覽器,此應用程序可以移植到不同的微處理器上。該瀏覽器可以實現根據地址訪問網站, 進行頁面的瀏覽并可以保存最近瀏覽過的網址等功能。

#p#

4. 1 界面設計

主要介紹瀏覽器的界面設計。根據設計的原則,界面設計簡潔方便, Q t Designer[ 9􀀁11 ] 是設計窗口組件(W idget)的應用程序, 包含很多Q t組件的可視化界面。在界面的上端設計了兩個Too l Button用來選擇頁面的后退與前進, 一個L ine E dit用來輸入所需訪問頁面的地址, 在L ine Ed it的下面添加一個S tackedW idget用來顯示網頁的內容, 同時在界面底部添加還包括一個Progress Bar顯示頁面加載的進度。主界面如圖2所示。

基于Qt Web瀏覽器設計與實現

4. 2 具體功能的實現

在Q t /Embeded的應用程序中, QM ainW indow 聲明Ma inW indow 類來作為用戶的界面, 窗口界面使用Q t設計器來完成, 在這里使用一些信號與槽來操作事件, 并提供了用戶界面的元素[ 13-14] 。在構造函數當中提供了用戶的界面、進度對話框和類似于狀態欄的幾個按鈕。下面具體介紹各功能槽函數的實現。具體實現過程如下:

使用goPrev ious( )函數來實現頁面的后退功能:

  1. vo idM a inW indow: : goPrev ious( )  
  2. {  
  3. QW ebV iew a* v iew = dynam ic_cast< QW ebV iew* > ( _tab􀀁  
  4. Stack􀀁> currenWt idget( ) );  
  5. if ( v iew )  
  6. v iew􀀁> back( );  

使用goNext( )函數來實現頁面的前進功能:

  1. vo idM a inW indow: : goNex t( )  
  2. {  
  3. QW ebV iew a* v iew = dynam ic_cast< QW ebV iew* > ( _tab􀀁  
  4. Stack􀀁> currenWt idget( ) );  
  5. if ( v iew )  
  6. v iew􀀁> forw ard( ) ;  

使用showHom e( )函數實現顯示主頁的功能、removeTab( )函數實現關閉當前的頁面窗口:

  1. vo idM a inW indow: : rem oveTab( )  
  2. {  
  3. QW ebV iew a* v iew = dynam ic_cast< QW ebV iew* > ( _tab􀀁  
  4. Stack􀀁> currenWt idget( ) );  
  5. if ( v iew )  
  6. {  
  7. _carouse l􀀁> rem oveItem ( view) ;  
  8. _tabStack􀀁> rem oveW idget( v iew );  
  9. de le te v iew;  
  10. }  

【編輯推薦】

淺談Qt做文件瀏覽器

在Qt中如何寫控制臺程序

Qt 平臺中使GUI保持響應流暢

瀏覽器對HTML5的兼容性分析

瀏覽器中使用“Linux 操作系統”

五大主流瀏覽器CSS3和HTML5兼容性大比拼

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-08-29 14:19:48

QtWebkit瀏覽器

2011-09-09 18:43:13

Qt Webkit瀏覽器

2020-08-16 08:51:22

WEB安全網絡攻擊網絡欺騙

2011-06-10 16:44:17

Qt 瀏覽器

2013-11-22 09:58:36

2009-03-25 09:11:35

Firefox瀏覽器

2018-08-30 08:47:59

瀏覽器web服務器通信

2022-06-20 09:00:00

Web3加密貨幣區塊鏈

2019-03-10 20:55:11

瀏覽器Midori開源

2011-08-29 14:27:33

QTWebkit瀏覽器

2010-08-10 09:40:23

Flex與瀏覽器交互

2009-06-22 14:06:00

java瀏覽器

2012-06-11 10:54:44

瀏覽器全洞悉

2012-03-19 17:25:22

2012-03-20 11:31:58

移動瀏覽器

2012-03-20 11:41:18

海豚瀏覽器

2012-03-20 11:07:08

2023-04-13 08:37:58

ChatGPTDIVHTML

2011-04-27 13:25:35

瀏覽器

2018-12-03 08:46:36

Web瀏覽器SeleniumPython
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产乱码久久久久久丨区2区 | 日韩欧美高清 | av乱码| 91新视频 | 午夜欧美| 在线视频国产一区 | 国产精品久久久久久久久图文区 | 国产伊人久久久 | 日韩精品 电影一区 亚洲 | 99热精品在线观看 | 三级黄视频在线观看 | 成人免费视频网 | 精品日韩 | 欧美日韩久久久 | 瑟瑟免费视频 | 成人一区二区在线 | 国产精品性做久久久久久 | 波多野结衣电影一区 | 一区二区三区四区免费观看 | 6996成人影院网在线播放 | 久久久国产一区二区三区四区小说 | 久久精品一级 | 亚洲91| 国产精品久久国产精品 | 日韩毛片在线视频 | 美女在线视频一区二区三区 | 国产在线资源 | 成人福利视频 | av黄色免费在线观看 | 日韩精品久久一区 | 久久中文高清 | 成人综合一区 | 日韩高清中文字幕 | 日韩一区二区三区视频 | 国产一区二区美女 | 免费a国产 | 蜜桃精品视频在线 | 狠狠草视频 | 99久久免费精品国产免费高清 | 成年人免费看 | 久草在线在线精品观看 |