Qt繪製不規則窗體

2021-08-14 07:17:11 字數 1086 閱讀 3582

qt在做介面(分qwindow 和qwidget兩類)時,不僅僅有windows窗體風格,還有無標題的窗體(實則 去掉了標題欄和側邊滾動條欄).

下面是我通過繼承qwidget基類,做了乙個龍圖形的不規則窗體,支援 滑鼠左鍵拖動 和 右鍵關閉程式 效果如下:

實際上窗體中只是畫了乙個背景透明的 /image/dragon.gif 利用qt的setmask()函式做出遮罩效果。

主要**如下widget.cpp

首先是標頭檔案:

#include "

widget.h

"#include

"ui_widget.h

"#include

#include

#include

#include

接著是建構函式:

widget::widget(qwidget *parent) :

qwidget(parent),

ui(newui::widget)

widget::~widget()

畫圖:

void widget::paintevent(qpaintevent *)

滑鼠按下事件:

void widget::mousepressevent(qmouseevent *event

)

//關閉視窗

else

if(event->button()==qt::rightbutton)

}

滑鼠移動事件:

void widget::mousemoveevent(qmouseevent *event

)}

滑鼠釋放事件:

void widget::mousereleaseevent(qmouseevent *event

)

////

恢復滑鼠指標

}

整個過程就此結束,還是比較簡單的。。

QT實現不規則窗體

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

QT實現不規則窗體和透明窗體

不規則窗體的實現有兩種方式 一種是設定窗體的掩碼影象 另一種是設定窗體背景透明,然後重寫其繪圖函式,將背景圖繪製上去。第一種方式 首先要準備兩張影象,一張是要顯示的影象,另一張是第一張圖的掩碼影象,黑色部分是你的窗體要顯示的部分,如圖 具體實現的關鍵 如下 irregularform1 irregu...

QT實現不規則窗體和透明窗體

不規則窗體的實現有兩種方式 一種是設定窗體的掩碼影象 另一種是設定窗體背景透明,然後重寫其繪圖函式,將背景圖繪製上去。第一種方式 首先要準備兩張影象,一張是要顯示的影象,另一張是第一張圖的掩碼影象,黑色部分是你的窗體要顯示的部分,如圖 具體實現的關鍵 如下 irregularform1 irregu...