在windowcompositionattribute.h
的列舉類accent_state
中新增乙個accent_enable_acrylicblurbehind
引數,初值為4;
定義setblur()函式的時候,accent_policy accent =
,和上次相比列表的第乙個引數變成了accent_enable_acrylicblurbehind
,第三個引數由0變為了gradientcolor
,這個引數用來設定視窗的背景色;
在vs2019裡面把寫好的函式編譯為acrylic.dll
;
在python中通過hwnd=ctypes.wintypes.hwnd(int(self.winid()))
,把wid型別強制轉換為hwnd型別,接著設定背景色gradientcolor = dword(0x50f2f2f2)
,0x50f2f2f2
的前兩位是透明度,後面六位是bgr,最後ctypes.cdll.loadlibrary('acrylic_dll\\\acrylic.dll').setblur(hwnd,gradientcolor)
,實現動態鏈結庫的載入和介面函式的呼叫,源**如下:
import sys
from ctypes import cdll
from ctypes.wintypes import hwnd, dword
from pyqt5.qtcore import qt
class
demo
(qwidget)
:""" 亞克力效果的實現 """
def__init__
(self)
:super()
.__init__(
) self.resize(
500,
500)
# 去除邊框,沒有這一步的話視窗陰影也會加上亞克力效果
self.setwindowflags(qt.framelesswindowhint)
# 背景透明
self.setattribute(qt.wa_translucentbackground)
# 呼叫api
hwnd = hwnd(
int(self.winid())
)# 直接hwnd(self.winid())會報錯
gradientcolor = dword(
0x50f2f2f2
)# 設定和亞克力效果相疊加的背景顏色
cdll.loadlibrary(
'acrylic_dll\\acrylic.dll'
).setblur(hwnd, gradientcolor)
if __name__ ==
"__main__"
: demo = demo(
) demo.show())
)
執行效果如下(硝子依舊如此美麗٩(๑>◡
win10怎麼修改碟符 win10如何修改碟符
win10怎麼修改碟符 win10如何修改碟符 用u盤安裝了系統,結果發現裝系統的u盤變成了d盤,安全撥了,碟符還是不會變回原來的。怎麼修改碟符呢?方法 步驟 1桌面右鍵 我的電腦 選擇 管理 2點選下面的 磁碟管理器 3右鍵要修改碟符的驅動器 然後選擇 更改驅動器和路徑 4點選 更改 5點選右邊的...
win10如何回退?win10怎麼退回前一版本
選擇win10開始視窗,然後選擇設定按鍵,如下圖如示,小編在工作列和開始螢幕都放置了設定應用。進入設定後,下拉列表以便選擇最後乙個按鍵 更新與安全 可參考下圖的選單位置。進入更新與安全 子選單,win10的日常補丁更新,也是在這裡設定的,不過我們現在要選擇最左方樹形選單的恢復 選擇恢復後,右方有兩個...
Win10如何關閉Windows Defender
對一些老 弱電腦來講,關閉defender可以減小電腦負擔。1 win r鍵開啟執行視窗,輸入regdit,回車開啟登錄檔編輯器。2 在彈出的登錄檔編輯器中,找到並單擊左側的hkey local machine software policeis microsoft windows defender...