環境配置 :mingw + qt 5.12
效果圖(紅色部分是桌面背景顏色):
下面這張有助於分析(視窗邊角弧度border_radius沒有註明):
testarrowwidget類繼承自qwidget
#define shadow_width
10// 視窗陰影寬度;
#define ********_width
15// 小三角的寬度;
#define ********_height
10// 小三角的高度;
#define border_radius
5// 視窗邊角的弧度;
class
testarrowwidget
:public qwidget
;
testarrowwidget:
:testarrowwidget
(qwidget *parent)
:qwidget
(parent)
,m_********width
(********_width),
m_********height
(********_height
)void testarrowwidget:
:initui()
void testarrowwidget:
:setstartpos
(int startx)
//設定小三角顯示的起始位置;
void testarrowwidget:
:set********info
(int w, int h)
void testarrowwidget:
:paintevent
(qpaintevent *
)
執行時雖然能夠正常顯示視窗,但是應用程式輸出視窗會列印:(原因好像是設定無標題欄屬性(qt::framelesswindowhint)和視窗透明屬性(qt::wa_translucentbackground)導致的)
環境配置 :mingw + qt 5.12
Qt繪製不規則窗體
qt在做介面 分qwindow 和qwidget兩類 時,不僅僅有windows窗體風格,還有無標題的窗體 實則 去掉了標題欄和側邊滾動條欄 下面是我通過繼承qwidget基類,做了乙個龍圖形的不規則窗體,支援 滑鼠左鍵拖動 和 右鍵關閉程式 效果如下 實際上窗體中只是畫了乙個背景透明的 image...
Qt學習 不規則窗體形狀
窗體可以設定為的形狀 如下 其實就是將窗體設定乙個遮罩,此遮罩設為的遮罩即可 這裡還涉及到一些event的函式過載,具體看 標頭檔案 cpp view plain copy print?include include include class widget public qwidget inclu...
不規則形狀的剪下
原理 根據選擇的區域 區域的選擇需要用到graphicspath 根據區域可以得到這部分區域的邊境矩形,從而不需要迴圈整張,只需要迴圈邊境矩形,將矩形中的選擇區域複製到另一種,這樣大大提高了效率。根據選擇的區域,可以得到複製出位於graphicspath中的這部分,同時設定這部分為透明,同時還要設定...