Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Qt绘制异形窗体

异形窗体即不规则窗体,一般采用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