异形窗体即不规则窗体,一般采用png图片,一般绘制异形窗体分两步:1、设置遮罩区
2、绘制图片使用png图片的透明部分作为遮罩区,然后绘制图片,这样我们就看到一个只绘制了非透明部分的图形,废话少说,以实现绘制一只蝴蝶(蝴蝶为半透明)为例,效果如下:头文件: 1: #include <QWidget> 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 <QBitmap> 3: #include <QPalette> 4: #include <QPaintEvent> 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: }Ubuntu 环境下Gtk与QT编译环境安装与配置 http://www.linuxidc.com/Linux/2013-08/88539.htmLinux系统下QT环境搭建 http://www.linuxidc.com/Linux/2013-07/87576.htmUbuntu下QT控制台程序无法运行的解决方案以及XTerm的配置方法 http://www.linuxidc.com/Linux/2013-06/86244.htmUbuntu 10.04下QT4.7.4移植详解 http://www.linuxidc.com/Linux/2013-01/77930.htmUbuntu 14.04下安装部署Qt5开发环境 http://www.linuxidc.com/Linux/2014-05/101774.htmQt 的详细介绍:请点这里
Qt 的下载地址:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-04/116232.htm