引用第8楼napier于2009-08-07 13:55发表的 :
我做过一个简单的不规则窗口。使用 Qt::FramelessWindowHint 以后,窗口才会在需要透明的地方变得透明,同时标题栏和边框也没有了。如果不用这个参数,背景就是黑的,没有出现版主博客里面的那种效果。
不知道这样可不可以:用老办法,mask 把客户区掩掉,然后再在上面显示文字等等,并且让相应窗口部件的背景透明。我没有试过,不知道行不行。
一定管用的办法,就是使用 Qt::FramelessWindowHint,然后自己实现一个标题栏和边框。
QPalette palete = palette ();
QPixmap backImage (QString::fromUtf8 ("resource/b1.png"));
QBitmap maskImage (QString::fromUtf8 ("resource/b2.png"));
palete.setColor (QPalette::Background, QColor (0x00, 0xff, 0x00, 0x00));
palete.setBrush (QPalette::Window, QBrush (backImage));
setPalette (palete);
setMask (maskImage);
setWindowFlags (Qt::FramelessWindowHint);
我的怎么就不透明呢,总是黑黑的