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...