Qt客戶端技巧 -- 窗口美化 -- 窗口陰影

不解析,直接給示例

窗口設為不邊框且背景透明,好用來承載陰影
窗口一個Widget用來作真實窗口的作用,在真實窗口上加上陰影特效

上下兩層Widget方式

main.cpp

#include <QtCore/qglobal.h>
#if QT_VERSION >= 0x050000
#include <QtWidgets/QApplication>
#else
#include <QtGui/QApplication>
#endif#include "shadowwindow.h"int main(int argc, char *argv[])
{QApplication a(argc, argv);ShadowWindow wnd{};wnd.init();return a.exec();
}

shadowwindow.h

#ifndef SHADOWWINDOW_H
#define SHADOWWINDOW_H#include <QtCore/QObject>
#include <QtCore/qglobal.h>
#if QT_VERSION >= 0x050000
#include <QtWidgets/QWidget>
#else
#include <QtGui/QWidget>
#endif#include <QGraphicsDropShadowEffect>class ShadowWindow : public QWidget
{Q_OBJECT
public:explicit ShadowWindow(QWidget *parent = nullptr);virtual void init();protected:QWidget* realWnd;QGraphicsDropShadowEffect *shadowEffect;signals:
};#endif // SHADOWWINDOW_H

shadowwindow.cpp

#include "shadowwindow.h"ShadowWindow::ShadowWindow(QWidget *parent): QWidget{parent}, realWnd{new QWidget{this}},shadowEffect{new QGraphicsDropShadowEffect{this}} {/* setAttribute 與 setWindowFlag 最好在構造函數里面調用,不然出現未知錯誤  */this->setAttribute(Qt::WA_TranslucentBackground, true);this->setWindowFlag(Qt::FramelessWindowHint);this->resize(400, 300);this->show();
}void ShadowWindow::init() {const int pWidth = this->width();const int pHeight = this->height();const int shadowOffsetX = 5;const int shadowOffsetY = 5;realWnd->move(0, 0);realWnd->resize(pWidth - shadowOffsetX, pHeight - shadowOffsetY);realWnd->setStyleSheet("background-color:\"#aacc00\";");realWnd->show();shadowEffect->setOffset(shadowOffsetX, shadowOffsetY);shadowEffect->setBlurRadius(20);shadowEffect->setColor(QColor("#cccccc"));realWnd->setGraphicsEffect(shadowEffect);
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/86471.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/86471.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/86471.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

優選算法第十二講:隊列 + 寬搜 優先級隊列

優選算法第十二講&#xff1a;隊列 寬搜 && 優先級隊列 1.N叉樹的層序遍歷2.二叉樹的鋸齒型層序遍歷3.二叉樹最大寬度4.在每個樹行中找最大值5.優先級隊列 -- 最后一塊石頭的重量6.數據流中的第K大元素7.前K個高頻單詞8.數據流的中位數 1.N叉樹的層序遍歷 2.二叉樹的鋸…

華為OD最新機試真題-流水線-OD統一考試(B卷)

題目描述: 有個工廠有m條 流水線,來并行完成n個獨立的作業,該工廠設置了一個調度系統,在安排作業時,總是優先執行處理時間最短的作業。 現給定流水線個數m,需要完成的作業數n,每個作業的處理時間分別為t1,.2..n。請你編程計算處理完所有作業的耗時為多少? 當n>m時

區塊鏈技術概述

區塊鏈技術是一種去中心化、分布式賬本技術&#xff0c;通過密碼學、共識機制和智能合約等核心組件&#xff0c;實現數據不可篡改、透明可追溯的系統。 一、核心技術 1. 去中心化 特點&#xff1a;數據存儲在網絡中的多個節點&#xff08;計算機&#xff09;&#xff0c;而非…

項目css / js的兼容性next項目實踐處理

之前寫過一篇&#xff0c;但是沒有css的處理&#xff0c;但是那一篇有幾個文章蠻好的https://blog.csdn.net/SaRAku/article/details/144704916 css兼容性和js兼容性 1. 確定需要兼容的版本 先確定你們的兼容性版本&#xff0c;我們的兼容性以APP H5的兼容版本為最低兼容性&…

Vue3 + Vite 中使用 Lodash-es 的防抖 debounce 詳解

Vue3 Vite 中使用 Lodash-es 的防抖(debounce)詳解 在 Vue3 Vite 項目中&#xff0c;debounce 是 lodash-es 中最常用的功能之一&#xff0c;它可以幫助我們優化高頻事件的處理。下面我將詳細講解 debounce 的使用方法&#xff0c;并提供一個完整的示例。 Debounce 核心概念…

MySQL--慢查詢日志、日志分析工具mysqldumpslow

mysqldumpslow 常用參數&#xff1a; -s&#xff0c;是order的順序----- al 平均鎖定時間-----ar 平均返回記錄時間-----at 平均查詢時間&#xff08;默認&#xff09;-----c 計數-----l 鎖定時間-----r 返回記錄-----t 查詢時間-t&#xff0c;是top n的意思&#xff0c;即為返…

C++課設:實現圖書館借閱記錄系統(支持書籍管理、借閱功能、超期檢測提醒)

名人說&#xff1a;路漫漫其修遠兮&#xff0c;吾將上下而求索。—— 屈原《離騷》 創作者&#xff1a;Code_流蘇(CSDN)&#xff08;一個喜歡古詩詞和編程的Coder&#x1f60a;&#xff09; 專欄介紹&#xff1a;《編程項目實戰》 目錄 一、系統概述與設計思路1. 系統核心功能…

矩陣和向量范數的區別分析

文章目錄 1. 研究對象本質差異2. 運算和作用方式不同3. 應用需求不同4. 數學性質和理論體系不同5. 幾何直觀不同6. 范數定義區別7. 范數計算方式區別8. 范數幾何意義區別9. 范數相容性區別總結 1. 研究對象本質差異 向量本質&#xff1a;向量是具有大小和方向的一維有序數組&a…

HTMLCSS 學習總結

目錄 ???一、HTML核心概念?? ??三大前端技術作用?? ??HTML基礎結構?? 開發工具&#xff1a;VS Code 專業配置????安裝步驟??&#xff1a; ??二、HTML標簽大全&#xff08;含表格&#xff09;?? ??三、CSS核心技術?? 1. 三種引入方式對比 2.…

Java + Spring Boot + Mybatis 實現批量插入

在 Java 中使用 Spring Boot 和 MyBatis 實現批量插入可以通過以下步驟完成。這里提供兩種常用方法&#xff1a;使用 MyBatis 的 <foreach> 標簽和批處理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 標簽&#xff…

Oracle11g安裝包

Oracle 11g安裝包 適用于windows系統&#xff0c;64位 下載路徑 oracle 11g 安裝包

通過Cline使用智能體

文章目錄 1、VS Code配置2、Cline使用2.1 工作模式2.2 MCP服務2.3 Cline支持的服務 3、案例一&#xff1a;天氣查詢項目3.1 需求說明3.2 申請高德API Key3.3 實操&#xff1a;向Cline下達命令 4、案例二&#xff1a;雙城天氣對比項目4.1 需求說明4.2 實操 Cline是VS Code的插件…

「混合開發」H5與原生App交互流程方案全面解析

目錄 內嵌H5調用iOS內的方法 1. 背景 2. 解決方案 2.1 創建WebView 2.2 注冊原生方法 2.3 H5調用原生方法 3. 序列圖 H5 調用 Android&#xff1a;詳細指南 整體流程 每一步的詳細說明 步驟1&#xff1a;在Android項目中設置WebView 步驟2&#xff1a;定義JavaScri…

webpack打包vue項目

要在 Vue 項目中使用 Webpack 進行打包&#xff0c;通常有幾種不同的方式來設置你的項目。以下是基本步驟&#xff1a; 1. 使用 Vue CLI 創建項目&#xff08;推薦&#xff09; Vue CLI 是官方提供的一個腳手架工具&#xff0c;它內置了對 Webpack 的支持&#xff0c;并且簡化…

Linux環境-通過命令查看zookeeper注冊的服務

假設前置條件如下&#xff1a; 1.root權限用戶名&#xff1a;zookeeper 2.zookeeper所在服務器地址&#xff1a;168.7.3.254&#xff08;非真實ip&#xff09; 3.zookeeper的bin文件路徑&#xff1a;/opt/zookeeper/bin 4.確保zookeeper注冊中心已啟動 查看注冊中心服務如下&a…

BLEU評分:機器翻譯質量評估的黃金標準

BLEU評分&#xff1a;機器翻譯質量評估的黃金標準 1. 引言 在自然語言處理(NLP)領域&#xff0c;衡量一個機器翻譯模型的性能至關重要。BLEU (Bilingual Evaluation Understudy) 作為一種自動化評估指標&#xff0c;自2002年由IBM的Kishore Papineni等人提出以來&#xff0c;…

ArcGIS計算多個柵格數據的平均柵格

3種方法計算多個柵格數據的平均柵格 1->使用“ 柵格計算器”工具 原理就是把多幅影像數據相加&#xff0c;然后除以個數&#xff0c;就能得到平均柵格。 2-> 使用“像元統計數據”工具&#xff0c;如果是ArcGIS pro&#xff0c;則是“像元統計”工具。使用這個工具可以…

Ubantu-Docker配置最新鏡像源250605

嘗試其他鏡像加速器 阿里云鏡像加速器&#xff1a;登錄阿里云&#xff0c;進入容器鏡像服務獲取專屬加速器地址。毫秒鏡像&#xff1a;https://docker.1ms.run。DockerHub鏡像加速器&#xff1a;https://docker.xuanyuan.me。Docker Hub 鏡像加速服務&#xff1a;https://dock…

中醫有效性探討

文章目錄 西醫是如何發展到以生物化學為藥理基礎的現代醫學&#xff1f;傳統醫學奠基期&#xff08;遠古 - 17 世紀&#xff09;近代醫學轉型期&#xff08;17 世紀 - 19 世紀末&#xff09;?現代醫學成熟期&#xff08;20世紀至今&#xff09; 中醫的源遠流長和一脈相承遠古至…

Unity網絡通信筆記

需求 首先要意識到網絡通信面對的是一個怎么樣的情景&#xff1a; 服務器會連任意個客戶端&#xff0c;任意時刻可能有客戶端連入連出&#xff1b;服務端和客戶端可能任意時刻給對方發消息&#xff0c;所以雙方都要一直準備好接收。但是兩端還有別的事要做&#xff0c;通信不…