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

QML教程:Review Native Quick Widgets

移動開發
在前文中我們分別介紹了《Qt-Quick六大開源組件》、《構建和安裝QtComponents》和《Qtmediahub項目概述》,本文為本系列的第四篇文章:Review Native Quick Widgets。

在前面到系列文章中,筆者只給了Native Quick Widget二星的評價,現在看來,這是一個非常膚淺的認識,在沒有深入源碼和具體功能到前提下,僅僅依靠界面來判斷是非常愚蠢到行為。

這也提示了筆者,每個開源項目都有存在都有它到可取之處,由于開源者無私到分享,才能鑄就出更好的軟件,提供更好到代碼邏輯。

這套Native Quick Widgets也是,它的存在價值并不是提供了美侖美煥的界面,而是提供了在目前到QtQuick中缺失的幾個重要功能。

這幾個功能作為觸摸屏的移動設備開發來說,并沒有非存在不可的的價值,但是一旦將QML應用于桌面開發,就顯示出巨大的影響。

很顯然,Native Quick Widgets的作者應該是使用QML進行了桌面軟件開發或者在這方面的嘗試,因此意識到了這方面的不足,才有這套組件的出現。

首先對這套QML組件進行最基本的分析,通過閱讀源碼發現,它提供了7個自定義QML元素:

1.Button元素

2.CheckBox元素

3.CursorArea元素

4.LineEdit元素

5.MenuAction元素

6.Menu元素

7.ProgressBar元素

8.ScrollBar元素

除了這些元素,還提供了7個QML組件:

1.Button.qml

2.ContextMenu.qml

3.ProgressBar.qml

4.ScrollBar.qml

5.CheckBox.qml

6.LineEdit.qml

7.ScrollArea.qml

逐一對這些進行分析,就可以發現這些組件提供的功能對于進行桌面開發的重要意義,從上面列出的QML組件和QML元素可以抽取出這些功能點:

1.最基本的按鈕,用于用戶的事件觸發

2.輸入編輯框,用于用戶的輸入

3.進度條,用戶顯示一個事件的處理進度

4.菜單和菜單動作,用于區域的用戶事件觸發

5.滾動條和滾動區域,用于查看可視范圍外的界面

6.鼠標顯示區域,用于改變鼠標顯示的形狀

前三個功能點,并不是特別需要或者重要,因為使用原生的QML也能完成這些功能點,并且能夠編寫出非常絢麗的效果,但是下面三點就不同了。

首先應該明白QML及QtQuick這門技術的適用范圍,這是與傳統UI不同的模式,并且設計之初更像是應用于觸摸屏等移動設備,而不是桌面應用。針對這三個功能點來比較下移動設備和桌面開發的差異。

菜單功能在兩者之間的差異:

1.桌面上菜單必不可少,右鍵菜單,或者是依附按鈕的菜單,都是提供用戶進行操作的捷徑,并且,菜單往往是多級的,二三級,甚至四級菜單都會存在,而觸摸屏設備內,由于屏幕尺寸的限制,往往多是一級菜單或者是沒有菜單,基本多由按鈕來完成必要的事件觸發;

2.在桌面上,鼠標有右鍵可以觸發菜單,在觸摸屏上,操作就是點擊或者放開,這是菜單非必需的重要理由,哪怕是多點觸摸,既然可以多點觸摸了,那為什么還需要菜單還進行事件觸發呢,手勢操作會顯得更加便捷;

從這兩點就已經可以看出兩者的重大差異,更為重要的是,針對QML本身來說,由于采取的是以圖元為基礎的DirectUI,雖然可以實現自我繪制菜單,但是對于緊張的開發周期來說,這些實現的時間無疑是揮霍。

滾動功能在兩者之間的差異:

這也是桌面上必備的功能,觸摸屏設備也同樣具有,但是同樣受限于觸摸屏設備的尺寸,用戶不可能把手點在微小的滾動條上滾動,而是在滾動區域,這點在ipad上的操作就可以體現出來。可是同樣的操作拿到桌面上,雖然有慣性滾動,但是這樣的操作是現在的桌面用戶無論如何都接受不了的;

QML的基本元素中提供了滾動,但是它不適用于傳統的桌面表現形式,雖然有,但是直接應用的話,對于還在鼠標時代的桌面來說,反而提供了很差的用戶體驗。

***是鼠標區域的差異:

在桌面上,由于操作的不同,鼠標會變換形狀,提示用戶當前操作的狀態,可是在觸摸屏設備上,就是畫蛇添足了,這是非常細節的地方,但是越細節的地方才能更加體會出編寫桌面軟件和移動設備軟件的不同。

通過這些簡單的分析,就應該認識到Native Quick Widgets的意義,雖然只是簡單地引用了Qt原生部件,但是這個實現幫助使用QML開發人員省去了自己實現這些功能點的過程,節省了寶貴的開發時間。

再次表達出對開源者的尊敬,正是接近無限的開源的代碼,才鑄就了ios,android,meego,如果沒有開源,這些為人們生活提供巨大幫助和快樂的系統將不會出現。

同時也有由于Qt的存在,我們節省了造輪子的過程,才能快速地編寫出軟件,滿足用戶多變的需求。

【編輯推薦】

  1. QML教程:Qt-Quick六大開源組件
  2. QML教程:構建和安裝QtComponents
  3. QML教程:Qtmediahub項目概述
責任編輯:佚名 來源: cuteqt
相關推薦

2011-06-20 13:23:03

Qt Quick QML

2011-06-10 11:05:05

Qt Quick QML

2011-03-11 14:43:41

Qt-QuickQML

2011-06-24 17:22:29

Qt Quick QML

2011-08-30 15:32:08

QtQuickQML

2011-03-21 17:06:31

QtmediahubQMLQt

2011-03-14 13:07:18

QMLQt

2011-08-30 15:49:03

QtQuick

2011-06-16 09:53:25

Qt QML 教程

2011-06-16 09:40:53

QML 教程

2011-06-16 09:28:14

Qt QML 教程

2011-09-09 14:09:17

Android Wid

2011-09-09 13:59:17

Android wid

2011-09-09 13:47:48

Android Wid

2018-08-16 15:11:47

Code ReviewPPT代碼

2011-06-10 11:24:08

Qt Quick Designer

2010-05-23 10:29:29

Widget開發

2009-03-12 08:34:54

2022-03-28 14:32:29

review代碼

2015-11-17 16:11:07

Code Review
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久久91 | 中文字幕一区在线观看视频 | 国产在线观看av | 桃花av在线 | 一级黄a | 国产视频精品免费 | 亚洲视频三 | 久久亚洲视频 | 欧美综合国产精品久久丁香 | 欧美日韩在线免费 | 免费观看a级毛片在线播放 黄网站免费入口 | 精品国产一区二区三区久久久蜜月 | 中文字幕不卡视频在线观看 | 久久鲁视频 | 亚洲伊人a | 在线2区| 男女性毛片 | 一区免费 | 日韩久草 | 欧美久操网 | 亚洲激情av | 亚洲一区二区在线视频 | 成人亚洲视频 | 一级毛片视频在线 | 99久久视频| 激情福利视频 | 欧美日韩一区在线 | 尤物视频在线免费观看 | 一级黄色片免费在线观看 | 日韩在线免费 | 精品国产一区二区三区免费 | 99精品免费久久久久久久久日本 | 久久久久无码国产精品一区 | 色播99 | 日韩一区二区三区视频在线播放 | 日韩欧美在线观看视频网站 | 国产精品久久九九 | 欧美va大片 | 精久久久久 | 精品视频一区二区三区在线观看 | 青青草网站在线观看 |