Qt之實現360安全衛士主介面 一

2021-07-06 07:47:41 字數 2260 閱讀 7806

該博文只是模仿360安全衛士的主介面,並不牽涉其中的任何業務功能;重在個人見解以及介面實現;關於360安全衛士的主介面,我想大家都見到過,畢竟基本大部分人都安裝過這個軟體,基於我對其介面的個人見解,對主介面分割為四部分:分別為標題欄、工具欄、內容區域、狀態列,分割圖例如下圖所示:

由於標題欄、工具欄、內容區域和狀態列都不是標準的部件,因此只能子類化部件進行自定義開發;主視窗繼承於qframe,而標題欄、工具欄、內容區域與狀態列都繼承於qwidget;最後在主視窗中使用qvboxlayout布局將其他部件加入到該布局中即可,其中標題欄和工具欄以及狀態列都是固定高度的,寬度和內容區域是隨視窗縮放而縮放的。

使用qt實現主介面的效果如下圖所示(按【alt+f4】鍵退出主介面):

大家可以對比一下,如果在該介面中再新增一些內容,就會越來越像了,後續博文會繼續新增內容。

下面講解具體實現方法,當然方法不只一種,也歡迎各位博友提出自己的看法與實現方式。

1、自定義主視窗

標題欄屬於作業系統,我們不能控制標題欄;因此要去掉視窗預設的標題欄,我們使用qt::framelesswindowhint視窗樣式即可,這樣就沒有了預設的標題欄,這時需增加我們自定義的標題欄部件即可,再依次增加其他部件到布局中;這些都是很基本的,不多闡述,**如下:

setwindowflags(qt::framelesswindowhint);

//建立標題欄

m_ptitlebar = new titlebar(this);

//建立工具欄

m_p******* = new *******(this);

//建立內容區域

m_pcontentwidget = new contentwidget(this);

//建立狀態列

m_pstatubar = new statubar(this);

//建立布局

m_pmainlayout = new qvboxlayout(this);

//將部件加入到布局中

m_pmainlayout->addwidget(m_ptitlebar);

m_pmainlayout->addwidget(m_p*******);

m_pmainlayout->addwidget(m_pcontentwidget);

m_pmainlayout->addwidget(m_pstatubar);

//設定間距與邊緣空白

m_pmainlayout->setspacing(0);

m_pmainlayout->setcontentsmargins(0,0,0,0);

2、主視窗背景以及圓角實現主視窗背景使用平鋪實現,當然使用qt的樣式表是最為簡單方便的了;qt的樣式**式和css基本一致;如果對css熟悉的話,對qt的樣式表(qss)就會很快熟悉起來;

setstylesheet("

qframe

");

360安全衛士的主介面是圓角的,我們的主介面當然也要實現圓角的了;在主視窗的重繪事件中新增如下**即可:

//

生成一張位圖

qbitmap objbitmap(size());

//qpainter用於在位圖上繪畫

qpainter painter(&objbitmap);

//填充位圖矩形框(用白色填充)

painter.fillrect(rect(),qt::white);

painter.setbrush(qcolor(0,0,0));

//在位圖上畫圓角矩形(用黑色填充)

painter.drawroundedrect(this->rect(),10,10);

//使用setmask過濾即可

setmask(objbitmap);

3、主視窗大小主視窗縮放到一定值之後便不能縮小,所以應該設定其最小寬度和高度;

setminimumwidth(850);

setminimumheight(600);

ok,主介面基本看起來有點像樣了,當然這個主介面還不能移動,不能縮放,沒有工具欄等,這些功能在後續的博文中會闡述新增。

Qt實現360安全衛士換膚功能

效果如下 問題 標題的換膚背景未顯示出來 要實現換膚功能,我們先建立乙個基於drop shadow widget的護膚介面,我們將換膚介面分為上中下三部分。drop shadow widget的功能一會說 pragma once include push button.h include chang...

360安全衛士傳言隨感

我想我是乙個憤青,至少在反對流氓軟體這個方向上。世人對流氓軟體的態度我很欣慰,因為還有一部分站了起在呼喊,在抗爭,因為我很怕會看到如果所有的人麻木起來,在麻木中死去,甚至有一部分人開始享受這些被 的生活。前幾天乙個朋友的電腦壞掉了,準確地說是 慢掉了 因為過去得急,什麼工具也沒帶,最終下了360安全...

360安全衛士怎麼用

360安全衛士也是乙個比較強大的軟體,儘管很多的人不喜歡360,但不得不說老周還是有本事的,他創造了一種新的商業模式,下面來說下,怎麼用360安全衛士。開啟360安全衛士,如下圖所示。點選體檢,如下圖所示。體檢完了,點選 一鍵修復 如下圖所示。你也可以點選 後台修復 如下圖所示。修復好後要重新啟動一...