該博文只是模仿360安全衛士的主介面,並不牽涉其中的任何業務功能;重在個人見解以及介面實現;關於360安全衛士的主介面,我想大家都見到過,畢竟基本大部分人都安裝過這個軟體,基於我對其介面的個人見解,對主介面分割為四部分:分別為標題欄、工具欄、內容區域、狀態列,分割圖例如下圖所示:
由於標題欄、工具欄、內容區域和狀態列都不是標準的部件,因此只能子類化部件進行自定義開發;主視窗繼承於qframe,而標題欄、工具欄、內容區域與狀態列都繼承於qwidget;最後在主視窗中使用qvboxlayout布局將其他部件加入到該布局中即可,其中標題欄和工具欄以及狀態列都是固定高度的,寬度和內容區域是隨視窗縮放而縮放的。
使用qt實現主介面的效果如下圖所示(按【alt+f4】鍵退出主介面):
大家可以對比一下,如果在該介面中再新增一些內容,就會越來越像了,後續博文會繼續新增內容。
下面講解具體實現方法,當然方法不只一種,也歡迎各位博友提出自己的看法與實現方式。
1、自定義主視窗
標題欄屬於作業系統,我們不能控制標題欄;因此要去掉視窗預設的標題欄,我們使用qt::framelesswindowhint視窗樣式即可,這樣就沒有了預設的標題欄,這時需增加我們自定義的標題欄部件即可,再依次增加其他部件到布局中;這些都是很基本的,不多闡述,**如下:
setwindowflags(qt::framelesswindowhint);2、主視窗背景以及圓角實現主視窗背景使用平鋪實現,當然使用qt的樣式表是最為簡單方便的了;qt的樣式**式和css基本一致;如果對css熟悉的話,對qt的樣式表(qss)就會很快熟悉起來;//建立標題欄
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);
setstylesheet("360安全衛士的主介面是圓角的,我們的主介面當然也要實現圓角的了;在主視窗的重繪事件中新增如下**即可:qframe
");
//3、主視窗大小主視窗縮放到一定值之後便不能縮小,所以應該設定其最小寬度和高度;生成一張位圖
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);
setminimumwidth(850);ok,主介面基本看起來有點像樣了,當然這個主介面還不能移動,不能縮放,沒有工具欄等,這些功能在後續的博文中會闡述新增。setminimumheight(600);
Qt實現360安全衛士換膚功能
效果如下 問題 標題的換膚背景未顯示出來 要實現換膚功能,我們先建立乙個基於drop shadow widget的護膚介面,我們將換膚介面分為上中下三部分。drop shadow widget的功能一會說 pragma once include push button.h include chang...
360安全衛士傳言隨感
我想我是乙個憤青,至少在反對流氓軟體這個方向上。世人對流氓軟體的態度我很欣慰,因為還有一部分站了起在呼喊,在抗爭,因為我很怕會看到如果所有的人麻木起來,在麻木中死去,甚至有一部分人開始享受這些被 的生活。前幾天乙個朋友的電腦壞掉了,準確地說是 慢掉了 因為過去得急,什麼工具也沒帶,最終下了360安全...
360安全衛士怎麼用
360安全衛士也是乙個比較強大的軟體,儘管很多的人不喜歡360,但不得不說老周還是有本事的,他創造了一種新的商業模式,下面來說下,怎麼用360安全衛士。開啟360安全衛士,如下圖所示。點選體檢,如下圖所示。體檢完了,點選 一鍵修復 如下圖所示。你也可以點選 後台修復 如下圖所示。修復好後要重新啟動一...