效果如下:
問題:標題的換膚背景未顯示出來
要實現換膚功能,我們先建立乙個基於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安全衛士,如下圖所示。點選體檢,如下圖所示。體檢完了,點選 一鍵修復 如下圖所示。你也可以點選 後台修復 如下圖所示。修復好後要重新啟動一...