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

2021-08-19 20:10:44 字數 2927 閱讀 5752

效果如下:

問題:標題的換膚背景未顯示出來

要實現換膚功能,我們先建立乙個基於drop_shadow_widget的護膚介面,我們將換膚介面分為上中下三部分。(drop_shadow_widget的功能一會說)

#pragma once

/**/

#include "push_button.h"

#include "change_skin_widget.h"

#include "drop_shadow_widget.h"

class skin_widget : public drop_shadow_widget

;

#include "skin_widget.h"

#include "util.h"

skin_widget::skin_widget(qwidget *parent)

: drop_shadow_widget(parent)

skin_widget::~skin_widget()

void skin_widget::inittitle()

void skin_widget::initcenter()

int skin_list_count = skin_list.size();

page_count = skin_list_count / 8;

page_count_point = skin_list_count % 8; //最後一頁顯示的個數

//就算最後一頁不滿8個,也得新增一頁

if (page_count_point>0) }

//顯示頁碼

void skin_widget::initbotton()

frist_page_button = new qpushbutton();

previous_page_button = new qpushbutton();

next_page_button = new qpushbutton();

last_page_button = new qpushbutton();

frist_page_button->setfixedwidth(50);

previous_page_button->setfixedwidth(50);

next_page_button->setfixedwidth(50);

last_page_button->setfixedwidth(50);

frist_page_button->setcursor(qt::pointinghandcursor);

previous_page_button->setcursor(qt::pointinghandcursor);

next_page_button->setcursor(qt::pointinghandcursor);

last_page_button->setcursor(qt::pointinghandcursor);

frist_page_button->setobjectname("bluebutton");

previous_page_button->setobjectname("bluebutton");

next_page_button->setobjectname("bluebutton");

last_page_button->setobjectname("bluebutton");

//布局

botton_layout = new qhboxlayout();

botton_layout->addstretch();

botton_layout->addwidget(frist_page_button,0,qt::aligncenter);

botton_layout->addwidget(previous_page_button, 0, qt::aligncenter);

for (int i = 0; i < button_list->count();i++)

botton_layout->addwidget(next_page_button, 0, qt::aligncenter);

botton_layout->addwidget(last_page_button, 0, qt::aligncenter);

botton_layout->addstretch();

botton_layout->setspacing(2);

botton_layout->setcontentsmargins(0,10,0,0);

}void skin_widget::showpage(qstring current_skin)

else if (current_skin == "previous") }

else if (current_skin == "next")

else if (current_page==page_count)

else

//第一頁為0-7 顯示至previous_total_page

int previous_total_page = (current_page - 1) % 8;

int tip_index = previous_total_page;

for (int i = 0; i < change_skin_list.count();i++) }

void skin_widget::translatelanguage()

void skin_widget::varyfyskin()

void skin_widget::painevent(qpaintevent *event)

注:換膚介面含有陰影邊框,其實實現在drop_shadow_widget類中。

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

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

360安全衛士傳言隨感

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

360安全衛士怎麼用

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