優(yōu)麒麟 - 你真的了解【開(kāi)始菜單】嗎?

總體功能設(shè)計(jì)
UKUI-menu 的總體功能設(shè)計(jì)分為三個(gè)模塊:模塊切換、窗口切換和搜索,打開(kāi)開(kāi)始菜單后默認(rèn)顯示模式切換-所有軟件模塊頁(yè)面:

功能模塊介紹
模塊切換
模塊切換包含三個(gè)功能模塊,分別為:所有軟件模塊、字母排序模塊和功能分類模塊。提供所有軟件模塊、字母排序模塊與功能分類模塊切換外部接口,參數(shù)為模塊切換按鈕指針變量;
接口定義:
void btnGroupClickedSlot(QAbstractButton *btn);
在頁(yè)面中對(duì)應(yīng)的位置如下:

圖2 功能模塊匯總
本次先對(duì)所有軟件模塊進(jìn)行介紹:
所有軟件模塊主要用于顯示系統(tǒng)中安裝的所有軟件,并根據(jù)軟件適應(yīng)頻率實(shí)時(shí)刷新,同時(shí)支持將軟件固定到列表頂端,不受使用頻率的限制,所有軟件模塊處理流程圖如下:

圖3 所有軟件模塊處理流程
主要函數(shù)說(shuō)明:
A. QVector
B. void ViewOpenedSlot(QDbusMessage msg); //進(jìn)程開(kāi)啟監(jiān)控槽函數(shù),參數(shù)為D-Bus總線消息
C. void directoryChangedSlot(const QString &path); //軟件安裝卸載監(jiān)控,參數(shù)為desktop文件目錄
D. void fixToAllActionTriggerSlot(); //將軟件固定到所有軟件模塊
E. void unfixedFromAllActionTriggerSlot(); //從所有軟件模塊取消固定
F. void updateListView(); //更新應(yīng)用列表
窗口切換
窗口切換即實(shí)現(xiàn)開(kāi)始菜單窗口大小的切換,默認(rèn)狀態(tài)下顯示為默認(rèn)窗口大小,通過(guò)調(diào)用切換接口實(shí)現(xiàn)最大化和恢復(fù)默認(rèn)大??;
接口定義:
void showFullScreenWidget(); //最大化窗口
void showDefaultWidegt(); //恢復(fù)默認(rèn)窗口大小
最大化窗口顯示如下:

圖4 最大化窗口
恢復(fù)默認(rèn)窗口大小顯示如下:

圖5 默認(rèn)窗口
搜索
搜索對(duì)于開(kāi)始菜單的作用,就是能夠幫助用戶快速查找應(yīng)用并打開(kāi)應(yīng)用,支持中英文及首字母實(shí)時(shí)搜索,在優(yōu)麒麟的開(kāi)始菜單接口中就提供了一個(gè)應(yīng)用開(kāi)啟外部接口,通過(guò)搜索框查找到應(yīng)用后點(diǎn)擊應(yīng)用圖標(biāo),即可打開(kāi)應(yīng)用;
接口定義:
void onClicked(QModelIndex index); //參數(shù)為應(yīng)用索引
以上就是本次對(duì)開(kāi)始菜單的一些介紹,主要分析了開(kāi)始菜單三大功能模塊的功能以及模塊切換中所有程序模塊的主要函數(shù),對(duì)源碼有興趣、想要了解更多的優(yōu)客可以點(diǎn)擊下方鏈接:
https://github.com/ukui/ukui-menu
![]()

歡迎優(yōu)客們掃描上方二維碼優(yōu)麒麟開(kāi)源操作系統(tǒng)~