高仿花生殼客戶端程序(qt)

高仿花生殼客戶端程序

前言

設計的初想是在現場調試的時候,使用花生殼進行遠程時,感受相似花生殼這種程序的模板較爲廣泛,當時和同事打趣說一個星期內能夠作出一摸同樣的界面,回到公司正好遇上離職,有時間想作一些東西,看到花生殼程序程序,瞬間想拿他用qt練手,因而三天時間仿製了該界面。git

原生界面
仿製界面

開發

基於QT5.12.10 MSVC2015 進行設計,目前只測試過64位的編譯和運行,沒有進行詳細的測試,僅供參考。github

配色基本使用qss進行完成,包括圖像的切換等,可是qss寫的時候比較散亂,都是在designer中直接進行書寫,通常會在要設置的控件的父元素中進行設置,部分直接在當前控件中進行設置,因此閱讀起來可能要本身找一下,若是有癖好的也能夠把qss弄成全局的文件進行讀寫,自由修改吧,小夥伴們!less

下面介紹一下設計中的關鍵要點函數

  1. 無標題欄 無邊框學習

    這個比較簡單,在主窗口的構造函數中直接添加測試

    setWindowFlags(Qt::FramelessWindowHint);
    setAttribute(Qt::WA_StyledBackground);
  2. 自定義標題欄網站

    這個需求目前也比較多,原理無非就是本身片斷鼠標的行爲和可拖動的區域,經過重寫如下的函數完成設置區域的dragable的屬性設計

    virtual void mousePressEvent(QMouseEvent *event);
    virtual void mouseReleaseEvent(QMouseEvent *event);
    virtual void mouseMoveEvent(QMouseEvent *event);
  3. tab按鈕的狀態保持調試

    tab標籤按鈕這個是在作一個其餘項目中遇到的,由於有幾個狀態的顯示問題,因此單純的使用qss沒法完成。問題主要是在圖標和問題同時顯示而且要切換圖標和點擊選擇之後維持狀態的問題
    我當時是寫了一個QToolPushButton的類進行狀態圖標的控制,使用qss完成文字等的狀態切換,若是你們有更好的方案,能夠更改。code

  1. 其餘

    該界面只是仿製向日葵程序的界面進行交流學習,界面的解釋和使用權歸該軟件的公司;

    程序界面並不是1:1還原,大小、顏色等有出入。

    對於程序中使用的圖標都來自iconfont網站;

    歡迎G友進行完善!!

Github:https://github.com/vvck/SunloginClient

相關文章
相關標籤/搜索