日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

linux qt绘框,Qt绘制异形窗体

發布時間:2025/3/20 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux qt绘框,Qt绘制异形窗体 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

異形窗體即不規則窗體,一般采用png圖片,一般繪制異形窗體分兩步:

1、設置遮罩區

2、繪制圖片

使用png圖片的透明部分作為遮罩區,然后繪制圖片,這樣我們就看到一個只繪制了非透明部分的圖形,廢話少說,以實現繪制一只蝴蝶(蝴蝶為半透明)為例,效果如下:

頭文件:

1: #include

2: class TransDialog : public QWidget

3: {

4:? ? Q_OBJECT

5: public:

6:? ? explicit TransDialog(QWidget *parent = 0);

7:? ? void paintEvent(QPaintEvent *event) ;

8: private:

9:? ? QPixmap m_Pixmap;

10: };

11:

cpp文件:

1: #include "transdialog.h"

2: #include

3: #include

4: #include

5:

6: TransDialog::TransDialog(QWidget *parent) :

7:? ? QWidget(parent,Qt::FramelessWindowHint)

8: {

9:? ? //讓程序背景半透明

10:? ? this->setWindowOpacity(0.5);

11:? ? //加載一幅有部分區域是透明的圖片作為程序的界面

12:? ? m_Pixmap.load("hudie.png");

13:? ? resize(640, 480);

14:? ? //保持圖片跟界面一樣大小

15:? ? m_Pixmap = m_Pixmap.scaled(size());

16: ?//設置自動填充

17:? ? setAutoFillBackground(true);

18:

19:? ? //不規則窗口的關鍵,將圖片透明的地方設為穿透

20:? ? setMask( m_Pixmap.mask() );

21:

22: }

23:

24: void TransDialog::paintEvent(QPaintEvent *event)

25: {

26:? ? //繪制背景圖片

27:? ? QPalette bgPalette = this->palette();

28:? ? bgPalette.setBrush(QPalette::Background,m_Pixmap);

29:? ? this->setPalette(bgPalette);

30: }

Qt 的詳細介紹:請點這里

Qt 的下載地址:請點這里

總結

以上是生活随笔為你收集整理的linux qt绘框,Qt绘制异形窗体的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。