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

2021-09-26 22:21:56 字數 1284 閱讀 5531

環境配置 :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中的這部分,同時設定這部分為透明,同時還要設定...