QT中不規則視窗的實現

2021-06-07 18:00:58 字數 1168 閱讀 1398

描述:mask.png 視窗掩碼圖 : 

描述:toolbutton.png 按鈕背景圖 : 

描述:toolbutton_mask.png 按鈕掩碼圖 : 

描述:runtime.png 示例執行時圖 : 

qt 中不規則窗體和部件的實現,不管是窗體還是部件,都是從qwidget派生而來的,所以它們的原理是一樣的,都是設定部件的背景色或者按鈕圖示等為乙個圖 像a,然後設定此部件的掩碼為另乙個影象b,這個影象b經過位與運算後,得到不規則的影象,這就行了下面,是乙個簡單的示例:

form.h:

quote:

#ifndef form_h

#define form_h

#include

class form : public qwidget ;

#endif

form.cpp:

quote:

#include

#include

#include "toolbutton.h"

#include "form.h"

form::form()

form::~form()

toolbutton.h:

quote:

#ifndef toolbutton_h

#define toolbutton_h

#include

class toolbutton : public qtoolbutton ;

#endif

toolbutton.cpp:

quote:

#include

#include

#include "toolbutton.h"

toolbutton::toolbutton(qwidget *parent)

: qtoolbutton(parent)

toolbutton::~toolbutton()

main.cpp:

quote:

int main(int argc, char **argv)

原文: www.qtcn.org/bbs/read.php

QT筆記之不規則視窗的實現

qt實現的不規則視窗,是根據的形狀顯示 1.去標題欄 2.設定視窗背景為透明色 3.最後給視窗設定背景色 注 背景圖為鏤空的 格式為.png h1 ifndef qanormalydlg h 2 define qanormalydlg h 34 include 5 include ui qanorm...

QT實現不規則窗體

看到網上有很多不規則窗體的實現,效果很酷.於是使用qt也實現了乙個,qt的不規則窗體實現非常簡單,只需要設定乙個mask 遮掩 這個的格式可以使用png或bmp格式,我使用了png格式,預設窗體是矩形的,使用png影象,將需要隔離在窗體之外的區域的畫素設定為白色或透明色,其他顏色的區域對應顯示出來的...

Qt繪製形狀不規則視窗(二)

環境配置 mingw qt 5.12 效果圖 紅色部分是桌面背景顏色 下面這張有助於分析 視窗邊角弧度border radius沒有註明 testarrowwidget類繼承自qwidget define shadow width 10 視窗陰影寬度 define width 15 小三角的寬度 d...